通知し、使用する必要がありますのnotifyAll?

信号損失が発生した通知を使用することが可能であるので、私たちは、のnotifyAllを使用するようにしてください。

例:接続プールを達成するために待機タイムアウトモード:

長い時間Tを待つと仮定すると、現在の時刻は、タイムアウト後に今+ Tであります


long overtime = now + T;
long remainTime = T;//等待的持续时间
while(remainTime>0 && result不满足条件){
    wait(remainTime);
    remainTime  = overtime - now;//等待剩余的持续时间    
}
return result;

場所への注意を払うに()メソッドのニーズに参加:参加方法スレッドBを実行し、スレッド、スレッドAは、スレッドが自分の仕事を続けることができ、Bの実装が完了した後に待機する必要があります

そのようなロックへの影響などを呼び出し収率()、スリープ()、待機()、通知()メソッド?

スレッド収量()メソッドを実行した後、ロック解除によって保持されていない、スリープ()メソッドは、ロック解除によって保持されていないと呼ばれているが、ロックが待ち()メソッドの後を呼び出し、メソッドを呼び出す前に保持しなければなりません、ロックは待機()メソッドの戻り、再びロックを保持しているスレッドを解放します。

メソッドを呼び出す前に、ロックを解除しないロック、呼び出し通知()メソッド自体を保持しなければなりません。

リリース7件のオリジナルの記事 ウォンの賞賛1 ビュー326

おすすめ

転載: blog.csdn.net/baidu_36882394/article/details/103550023