条件变量是一个或多个线程等待某个布尔表达式为真,即等待别的线程“唤醒”它。条件变量的学名叫做管程。
条件变量对于wait端:
1.必须与mutex一起使用,该布尔表达式的读写需要受到mutex的保护。
2.在mutex已上锁的时候才能调用wait()
3.把判断布尔条件和wait()放在while循环中。
int
Queue::getFront()
{
Lock
l(&(
this->
mutex));
while(q.
empty())
{
pthread_cond_wait(&cond,&mutex);
}
assert(!q. <