参考链接https://blog.csdn.net/shichao1470/article/details/89856443
pthread_cond_wait内部会解锁,然后等待条件变量被其它线程激活
看一种情况
int sig = 0;
void p1()
{
if (sig == 0)
pthread_cond_wait();
}
void p2()
{
sig = 1;
}
有一种如下的情况
p1: if (sig == 0)
p2: sig = 2;
p1: wait
显然冲突了
所以要在访问条件变量的时候加锁
关于pthread_cond_wait():为什么使用后要马上解锁?
pthread_cond_signal(&ready);
pthread_mutex_unlock(&mutex);
pthread_cond_wait()的内部有一个加锁操作!!!!!!!!!!!
不释放锁的话pthread_cond_wait不会返回...