みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

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

投稿日時 - 2012-06-27 11:27:54

QNo.7557665

すぐに回答ほしいです

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

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

投稿日時 - 2012-06-27 17:53:19

お礼

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

投稿日時 - 2012-07-16 20:24:30

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問