Linux线程同步之条件变量
作者:网络转载 发布时间:[ 2014/2/27 9:39:19 ] 推荐标签:Linux 线程同步 条件变量
条件变量是线程可用的另一种同步机制。条件变量给多个线程提供了一个会合的场所。条件本身是由互斥量保护的。线程在改变 条件状态前必须首先锁住互斥量。
条件变量的初始化 pthread_cond_init
去除初始化 pthread_cond_destroy
等待 pthread_cond_wait
满足条件给向进程发送信号 pthread_cond_signal
下面程序展示了利用条件变量等待另外两个线程满足条件时,第三个进程继续向前执行
#include <stdio.h>
#include <pthread.h>
#include <signal.h>
pthread_mutex_t m1, m2;
pthread_cond_t c1,c2;
pthread_t t1, t2, t3;
void* r1(void *arg)
{
sleep(10); //睡眠10秒
pthread_cond_signal(&c1);
printf("t1 finish
");
while(1);
}
void* r2(void *arg)
{
sleep(15);//睡眠15秒
pthread_cond_signal(&c2);
printf("t2 finish
");
while(1);
}
void* r3(void *arg)
{
pthread_cond_wait(&c1, &m1);
pthread_cond_wait(&c2, &m2);
printf("finish
");//15秒后线程打印
}
main()
{
pthread_mutex_init(&m1, 0);
pthread_mutex_init(&m2, 0);
pthread_cond_init(&c1, 0);
pthread_cond_init(&c2, 0);
pthread_create(&t1, 0, r1, 0);
pthread_create(&t2, 0, r2, 0);
pthread_create(&t3, 0, r3, 0);
while(1);
}
相关推荐
更新发布
常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11系统性能测试及调优前期准备
2021/4/15 14:41:29国内比较好用的5款测试管理工具
2021/3/25 17:23:31