Condition
概述
Condition意为“条件”,在多线程运行的情况下,不同的线程等待在不同的Condition下,其它拥有这个Condition锁的线程能够唤醒阻塞在这个Condition上的线程,这和Object.wait()以及Object.notify()方法阻塞和唤醒线程的机制一样,调用Object.wait()方法的线程必须拥有这个对象的monitor,同样调用Condition的await方法的线程也需要获取一把Lock(java.util.concurrent.locks.Lock),就好比将Lock类比成synchronized关键字,将Condition类比成对象的monitor。Condition借助Lock实现了java原生的wait/notify机制。