进入临界区使得该条件formula_1为真，该管程发生死锁.解决办法是条件变量(condition variables). 概念上，一个条件变量就是一个线程队列(queue), 其中的线程正等待某个条件变为真。每个条件变量formula_4关联着一个断言formula_5. 当一个线程等待一个条件变量，该线程不算作占用了该管程，因而其它线程可以进入该管程执行，改变管程的状态，通知条件变量formula_4其关联的断言formula_5在当前状态下为真.因此对条件变量存在两种主要操作:在下述例子中