条件变量
来源:互联网 发布:java getruntime exec 编辑:程序博客网 时间:2024/05/08 11:39
#include <pthread.h>#include <stdio.h>#include <stdlib.h>pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;/*初始化互斥锁*/pthread_cond_t cond = PTHREAD_COND_INITIALIZER;/*初始化条件变量*/void *thread1(void *);void *thread2(void *);int i=1;int main(void){ pthread_t t_a; pthread_t t_b; pthread_create(&t_a,NULL,thread2,(void *)NULL);/*创建进程t_a*/ pthread_create(&t_b,NULL,thread1,(void *)NULL); /*创建进程t_b*/ pthread_join(t_b, NULL);/*等待进程t_b结束*/ pthread_mutex_destroy(&mutex); pthread_cond_destroy(&cond); exit(0);}void *thread1(void *junk){ for(i=1;i<=9;i++) { pthread_mutex_lock(&mutex);/*锁住互斥量*/ if(i%3==0) pthread_cond_signal(&cond);/*条件改变,发送信号,通知t_b进程*/ else printf("thead1:%d\n",i); pthread_mutex_unlock(&mutex);/*解锁互斥量*/<span style="white-space:pre"></span>sleep(1); }}void *thread2(void *junk){ while(i<9) { pthread_mutex_lock(&mutex);<span style="white-space:pre"></span>if(i%3!=0) pthread_cond_wait(&cond,&mutex);/*等待*/ printf("thread2:%d\n",i); pthread_mutex_unlock(&mutex);<span style="white-space:pre"></span>sleep(1); }}
0 0
- 条件变量
- 条件变量
- 条件变量
- 条件变量
- 条件变量
- 条件变量
- 条件变量
- 条件变量
- 条件变量
- 条件变量
- 条件变量
- 条件变量
- 条件变量
- 条件变量
- 条件变量
- 条件变量
- 条件变量
- 条件变量
- 从尾到头输出链表
- 【cocos2d-x从c++到js】回调函数2——JSCallbackWrapper
- leetcode 刷题之路 92 Climbing Stairs
- C++代码注释行和函数个数统计
- 【cocos2d-x从c++到js】注册函数
- 条件变量
- hdu 1181(传递闭包)
- POJ 1436 Horizontally Visible Segments
- 【cocos2d-x从c++到js】傀儡构造函数
- java栈
- myeclipse生产javadoc
- 黑马程序员----导演,这剧本不对啊---->面试总结
- POJ-2485-Highways (Prime)
- OpenWRT开发自定义应用方法