Thread.sleep()
は、現在実行中のスレッドを指定された時間だけ一時停止し、その後実行を待って実行可能状態に戻ります。Javaの同期コンテキストからThread.sleep()を呼び出す
また、コンテキストから呼び出された場合、sleep()
は保持するロックを解放しません。だから私はいつロックを解除するのだろうかと思っていた。スレッドがスリープ状態になると、実行する機会が決して得られないので、ロック自体は常にロックされ、他のスレッドはどのように同期メソッド/ブロックに入るのかが決まります。
私は有効な質問をしているかどうかわかりません。しかし、私を助けてください。
本当に、 'Thread.sleep()'を呼び出すのは良い考えではないでしょう。あなたが今できることがあれば、今すぐやるべきことです。あなたができることができる前に何かを待たなければならない場合は、寝るよりも何かを待つべきです。 –
@DavidSchwartz:私は同意します。 'Thread.sleep()'は正当な用途がありますが、それはしばしば使われるべきではありません。 – NPE
よく説明されていますが、要約すると、同期化されたブロックからThread.sleep()を呼び出すことは良い考えではない可能性があります。あまりにも遠すぎます。時々あなたはロックを保ち続けたいと思っています。 – Jesus