Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Tìm kiếm tuyến tính đa luồng (Multi-threading) trong C

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