我了解wait()
andnotify()/notifyAll()
方法的目的是替换其他语言中使用的传统循环/轮询结构:
while(true) {
if(pollSomethingForAnEvent())
break;
}
我进一步了解,Condition
API 是在 Java 5 中引入的,以便将此模型包装在更“OO”的实现中。
我不明白Object.notify()
的是Java如何知道在何时或被Condition.signal()
调用时通知哪些线程,或者Java如何知道向哪些线程发出信号Object.wait()
或被Condition.await()
调用?
由于这些方法不接受任何参数,JVM 怎么知道将这些通知传递给哪些线程?!?!