3

请考虑以下代码:

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

}

如果线程在 wait() 上被阻塞时被中断,myLock 的监视器是否会在进入 catch 块之前被重新获取(暂时?)?

4

1 回答 1

3

正如javadoc所说

如果当前线程在等待之前或期间被任何线程中断,则抛出 InterruptedException。在此对象的锁定状态已按上述恢复之前,不会引发此异常。

所以,是的,它将被阻塞,等待重新获取锁,然后抛出异常。

于 2014-05-22T04:36:54.620 回答