Condition 将 Object 监视器方法(wait、notify 和 notifyAll)分解成截然不同的对象,以便通过将这些对象与任意 Lock 实现组合使用,为每个对象提供多个等待 set(wait-set)。其中,Lock 替代了 synchronized 方法和语句的使用,Condition 替代了 Object 监视器方法的使用。
这是API上的一段话,我不明白的地方是:conditions是如何注册在一个线程之上的?看毕老师的代码,有这么一段:
Lock lock=new ReentrantLock();
Condition condition_pro=lock.newCondition();
Condition condition_con=lock.newCondition();
请问当一个线程启动时,它是怎么知道哪个Condition是那个线程的,也就是说某个Condition是如何与一个线程联系到一起的?
|