阻塞后,线程是否退出每个同步的方法或对象?

时间:2017-04-13 13:04:20

标签: java multithreading

如果我有这样的东西

synchronized void doSomething() throws Exception {
    synchronized (lock1) {
        lock1.wait();
    }
    wait();
}

一旦它在lock1.wait()处阻止,其他一些线程是否可以访问doSomething()并在其中工作?

如果被阻止的线程被发出信号并重新获得方法的输入怎么办?它会阻止wait()吗?

1 个答案:

答案 0 :(得分:1)

不,调用wait()会释放您正在调用wait()的对象的锁定。在示例代码中,lock1上的锁定将被释放,但this上的锁定仍由线程保留。