なぜ我々は、インタースレッド間通信のための()に通知する必要はありません

ghostrider:

オブジェクトのためのJAVAドキュメントから notify()

現在のスレッドがこのオブジェクトのロックを解除するまで再開されたスレッドを続行することができません。

、その同期ブロックが完了すると、それはロックを解除しnotifesスレッドがない限り、待機中のスレッドが進まないことをこれが意味。その場合は、その後持っていることのポイントをいただきましたnotify()シンクブロックはとにかく実行されようとしている場合は?実際の使用何ですかnotify()、それは待機中のスレッドを覚ますと、それはその仕事をやらせていない場合は?

Khanna111:

良い質問。見取るためにあなたを指すことになるスレッドの状態クラス

呼び出すスレッドObject.notifyの方法は、以前に呼び出されたスレッドが可能Object.waitになりましスレッドスケジューラによってスケジュールされるように有効になっています。用語では、待っていたスレッドは、「今ありますrunnable」。それは「実行可能」ですが、それは「実行中」ではありません。

スレッドが呼び出すときにのみ実行し続けることができますnotifyロックを解除する-それは、同期ブロックのうち終了したときの1つの方法です。

スレッド状態で、ウェブ上の回路図がたくさんあります。彼らは公式ドキュメントで用語を紹介していないので、それらのいくつかは完全に間違っているか混乱しています。ここでは1である私には意味があります。

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=478228&siteId=1