1、Condition 实际上是 java.util.concurrent.locks 中的一个接口。
2、Condition 将 Object 监视器方法(wait、notify 和 notifyAll)分解成截然不同的对象,以便通过将这些对象与任意 Lock 实现组合使用,为每个对象提供多个等待 set(wait-set)。其中,Lock 替代了 synchronized 方法和语句的使用,Condition 替代了 Object 监视器方法的使用。
3、Condition 实例实质上被绑定到一个锁上。要为特定 Lock 实例获得 Condition 实例,需要使用 Lock 的 newCondition() 方法。
final Lock lock = new ReentrantLock();
final Condition notFull = lock.newCondition();
final Condition notEmpty = lock.newCondition();