Linux下的线程锁的机制(源代码)
来源:互联网 发布:it before 编辑:程序博客网 时间:2024/05/18 00:25
其中main函数为测试用
#include "stdio.h"#include "myHeadFile.h"#include "stdlib.h"struct mutexType { pthread_mutex_t id;};typedef struct mutexType* mutex_t;int mutexCreate( OUT mutex_t* outMutex){ mutex_t mutex; mutex = (mutex_t)malloc(sizeof(struct mutexType)); if(mutex == NULL) ERROUT("\n"); if (pthread_mutex_init(&mutex->id, NULL)) { free(mutex); ERROUT("\n"); } printf("mutex = %x\n", mutex); *outMutex = mutex; return 0;Err: return -1;}int mutexLock( IN mutex_t mutex){ int ret = -1; if(mutex == NULL) ERROUT("\n"); ret = pthread_mutex_lock(&mutex->id); if (0 != ret) ERROUT("lock err\n"); return 0;Err: return -1;}int mutexUnlock( IN mutex_t mutex){ int ret = -1; if(mutex == NULL) ERROUT("\n"); ret = pthread_mutex_unlock(&mutex->id); if (0 != ret) ERROUT("unlock err\n"); return 0;Err: return -1;}void task( IN void* arg){ sleep(1); mutexUnlock((mutex_t)arg); printf("task start\n"); return;}int main(){ int ret = -1; int tid = -1; mutex_t testMutex = NULL; ret = mutexCreate(&testMutex); pthread_create(&tid, 0, task, (void*)testMutex); ret = mutexLock(testMutex); printf("ret = %d\n", ret); sleep(2); return 0;}
记住编译的时候,加上-lpthread的编译选项
- Linux下的线程锁的机制(源代码)
- linux下的线程及同步机制(1)
- linux下的线程及同步机制(2)
- linux下C实现线程池的源代码
- linux下C实现线程池的源代码
- linux下的锁机制
- linux的线程同步机制
- linux的线程同步机制
- linux的线程同步机制
- Linux的线程同步机制
- linux的线程同步机制
- linux的线程同步机制
- linux的线程同步机制
- linux下的线程
- Linux下的线程
- linux下的线程
- linux下的线程
- Linux下的线程
- 求两个数的最大公约数
- Hadoop MapReduce Task Log 无法查看syslog问题
- eclipse 遇到的问题
- ubuntu下中文输入法的安装--fcitx(可运行版)
- java 图片压缩 缩放
- Linux下的线程锁的机制(源代码)
- JAVA 文件上传下载
- mysql查询数据表中是否有重复的数据
- VS 常用快捷键
- Core Data入门基本知识(2)
- 【IT面试题】寻找和为定值的多个数
- 批处理脚本学习总结
- 怎么取消SVN的项目目录
- 线程池【小菜鸡...】