https://blog.csdn.net/special00/article/details/52279564
下面来讲一下:pthread_cond_wait和pthread_cond_singal是怎样配对使用的:
等待线程:
第一步:pthread_cond_wait前要先加锁
第二步:pthread_cond_wait内部会解锁,然后等待条件变量被其它线程激活
第三步:pthread_cond_wait被激活后会再自动加锁
激活线程:
第一步:加锁(和等待线程用同一个锁)
第二步:pthread_cond_signal发送信号(阶跃信号前最好判断有无等待线程)
第三步:解锁
激活线程的上面三个操作在运行时间上都在等待线程的pthread_cond_wait函数内部。
条件变量是实现线程间同步的一种方法,条件变量用来自动阻塞一个线程,直到收到收到一个cond信号或其它特殊情况发送,条件变量使用的时候必须与互斥量同时使用,这是为了保证条件量在线程间操作的“原子性”。
https://blog.csdn.net/qq_19004627/article/details/79927169