如果我有这样的东西
synchronized void doSomething() throws Exception {
synchronized (lock1) {
lock1.wait();
}
wait();
}
一旦它在lock1.wait()
处阻止,其他一些线程是否可以访问doSomething()
并在其中工作?
如果被阻止的线程被发出信号并重新获得方法的输入怎么办?它会阻止wait()
吗?
答案 0 :(得分:1)
不,调用wait()
会释放您正在调用wait()
的对象的锁定。在示例代码中,lock1
上的锁定将被释放,但this
上的锁定仍由线程保留。