把私有的互斥锁。该互斥锁初始状态为解锁，在管程的每个公共子程序的入口给该互斥锁加锁，在管程的每个公共子程序的出口给该互斥锁解锁。这个例子中的不变量是「任何操作执行前 balance 变数必须反映正确的余额」。一般而言，不变量的条件不被写在程式中，而在註解中有相关说明，然而Eiffel程序设计语言显式检查不变量。
条件变数(Condition Variable).对于许多应用场合，互斥操作是不够用的。线程可能需要等待某个条件formula_1为真，才能继续执行。在一个忙碌等待循环