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]);  //解鎖


編譯

gcc -g main.c -o main -pthread

注意:在編譯時要加上 -pthread 選項


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM