次のコードを検討してください。
try{
synchronized(myLock){
myLock.wait(); // gets interrupted while waiting.
}
}catch(InterruptedException ie){
}
wait() でブロックされている間にスレッドが中断された場合、catch ブロックに入る前に myLock のモニターが (一時的に?) 再取得されますか?
次のコードを検討してください。
try{
synchronized(myLock){
myLock.wait(); // gets interrupted while waiting.
}
}catch(InterruptedException ie){
}
wait() でブロックされている間にスレッドが中断された場合、catch ブロックに入る前に myLock のモニターが (一時的に?) 再取得されますか?
Javadocの状態として
現在のスレッドが、待機中または待機中にいずれかのスレッドによって割り込まれた場合、InterruptedException がスローされます。この例外は、このオブジェクトのロック状態が上記のように復元されるまでスローされません。
したがって、ロックが再取得されるのを待ってブロックされ、例外がスローされます。