[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends:00495] wait, notify 議論の行方
吉田です。
Java-houseなどで、waitがあっても、
while(booleanStateFull)
wait(1000)
と、
while(booleanStateEmpty)
wait(1000)
の二つのステートで、どちらも同じオブジェクトに対して synchronized しな
ければならない仕様があるのは、少しもったいないという話題があったと思います。
質問なのですが、そういった処理を前提として、以下のJavaプログラムの場合
には、どのように、処理を記述するのでしょうか?
while(!hardSignel) {
while(!weakSignal && (lowerLimit < x || upperLimit < x))
wait(1000)
}
while(!weakSignal) { //さらに、これを追加してみます。
//後始末
//例)スレッドの終了を待つが、物理スレッドを再利用したい
//例)AsyncWriterのフラッシュ処理
}
僕の想像だと、以下のメソッド経由でしかつかえない事になり、Javaよりも
複雑になる気がします。
class WaitableState {
public void waitForMe();
public void changeEvent();
//WindowsAPIは以下のものがあります。
public static void waitForMulti(WaitableState[]);
}
--
S.Yoshida <vzy03312@xxxxxxxxxxxxxxxxx>
------------------------------------------------------------------------
★ こっちの流行語大賞はどんなの?
http://www.infoseek.co.jp/Keyword?pg=nranking_top_if.html&svx=971122