3

次のコードを検討してください。

try{
    synchronized(myLock){
        myLock.wait(); // gets interrupted while waiting.
   }
}catch(InterruptedException ie){

}

wait() でブロックされている間にスレッドが中断された場合、catch ブロックに入る前に myLock のモニターが (一時的に?) 再取得されますか?

4

1 に答える 1

3

Javadocの状態として

現在のスレッドが、待機中または待機中にいずれかのスレッドによって割り込まれた場合、InterruptedException がスローされます。この例外は、このオブジェクトのロック状態が上記のように復元されるまでスローされません。

したがって、ロックが再取得されるのを待ってブロックされ、例外がスローされます。

于 2014-05-22T04:36:54.620 に答える