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 选项

posted @   健康平安快乐  阅读(4447)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示