Chia mảng thành phần, mỗi thread tìm trong một phần. Dùng pthread.
Code ví dụ
#include <stdio.h>
#include <pthread.h>
#define MAX 16
#define THREAD_MAX 4
int arr[MAX] = {1,5,7,10,12,14,15,18,20,22,25,27,30,64,110,220};
int key = 18;
int flag = 0;
int current_thread = 0;
void* ThreadSearch(void* args) {
int num = current_thread++;
for (int i = num*(MAX/4); i < (num+1)*(MAX/4); i++)
if (arr[i] == key) flag = 1;
return NULL;
}
int main() {
pthread_t t[THREAD_MAX];
for(int i=0;i
Biên dịch
gcc file.c -lpthread