簡単な質問お願いします。Java のオブジェクトで通知を呼び出した場合、通知を呼び出した後に (厳密に) 待機しているスレッドを起動しないことが保証されますか? つまり、すでに待機していたウェイクアップ スレッドのみを通知します。おそらく、notifyAll
同じように動作します。
たとえば、保証が成り立たない場合、次の順序で可能です。
- スレッド N はロックを取得し、通知を呼び出し、ロックを解放します。
- スレッド W はロックを取得し、wait を呼び出してロックを解放します。
- スレッド W はスレッド N の通知によって起動され、続行します...
ご協力いただきありがとうございます!