Condition Variable(条件变量)通常与一个锁关联。这种同步机制是一个线程等待特定的条件,另一个线程通知它条件已经发生。一旦条件发生,该线程就会获取锁,从而独占共享资源的访问。
需要在多个 Condition 中共享一个锁时,可以传递一个 Lock/RLock 实例给构造方法,否则它将自己生成一个 RLock 实例。可以认为,除了 Lock 带有的锁定池外,Condition 还包含一个等待池,池中的线程处于状态图中的等待阻塞状态,直到另一个线程调用 notify()
/ notifyAll()
通知;得到通知后线程进入锁定池等待锁定。