Java:当线程等待对象时,所有监视器都会被释放吗?
2022-09-02 09:31:51
在线程可以对对象进行操作之前,它必须在该对象上获取监视器。然后释放监视器,线程在唤醒后尝试重新获取它。wait
但是,当线程调用时,线程持有的其他监视器会发生什么情况?wait
请考虑以下示例:
Object a = // ...
Object b = // ...
synchronized(a)
{
synchronized(b)
{
b.wait();
// continue
}
}
当线程调用时,它会在 and 和 上释放锁,还是只释放锁?b.wait()abb