wait()
およびnotify()/notifyAll()
メソッドが、他の言語で使用されている従来のループ/ポーリング構造を置き換える目的に役立つことを理解しています。
while(true) {
if(pollSomethingForAnEvent())
break;
}
Condition
このモデルをより「OO」な実装でラップするために、Java 5 で API が導入されたことをさらに理解しています。
私が理解していないのは、Java がどのスレッドに通知するか、Object.notify()
またはCondition.signal()
呼び出されるかをどのように認識するか、またはJava がどのスレッドに通知するか、Object.wait()
または呼び出されるかをどのように認識するかということCondition.await()
です。
これらのメソッドはパラメーターとして何も受け取らないため、JVM はこれらの通知をどのスレッドに渡すかをどのように知るのでしょうか?!?!