• ベストアンサー

Javaのスレッドについて教えて下さい!

AとBはpublic参照で、AはThreadを参照していて、BはObjectを参照しているとする。スレッドAはB.wait()を実行中の際に別のスレッドからAがwaitの実行を停止することを保証するために、一番信頼性のあるコードは、foo.notify(); とfoo.notifyAll()のどちらになりますか?また、他に良いコードはありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • akouryy
  • ベストアンサー率100% (3/3)
回答No.1

B以外にwaitを実行しているThreadがなければ、どちらも同じで、 その保証がないならnotifyAll()が良いです。 なお、他にThreadがあるときnotifyAll()を呼び出すと、 全てのThreadのwait()も解除されることになります。 そこに気をつけてください。 あとは、boolean waitFlag;とか。

参考URL:
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/Object.html#notify%28%29
wiredrikou
質問者

お礼

わかりやすく解説していただいてありがとうございました!

関連するQ&A

専門家に質問してみよう