C 语言多线程与锁机制

C 语言多线程与锁机制

多线程

#include <pthread.h>

void *TrainModelThread(void *id) {
    ...
    pthread_exit(NULL);  //线程退出
}

pthread_t *pt = (pthread_t *)malloc(num_threads * sizeof(pthread_t));  //建立 num_threads 个线程
for (a = 0; a < num_threads; a++) 
    pthread_create(&pt[a], NULL, TrainModelThread, (void *)a);  //注册线程
for (a = 0; a < num_threads; a++) 
    pthread_join(pt[a], NULL);  //线程执行

锁机制

pthread_mutex_t writable[100]; //lock

pthread_mutex_init(&writable[i], NULL);  //锁的初始化

pthread_mutex_lock(&writable[i]);  //加锁
...  //临界区
pthread_mutex_unlock(&writable[i]);  //解锁
相关文章
相关标签/搜索