Java 在阻塞时,线程是否从每个同步的方法或对象中退出?
如果我有这样的东西Java 在阻塞时,线程是否从每个同步的方法或对象中退出?,java,multithreading,Java,Multithreading,如果我有这样的东西 synchronized void doSomething() throws Exception { synchronized (lock1) { lock1.wait(); } wait(); } 一旦它阻塞在lock1.wait(),其他线程是否能够访问doSomething()并在其中工作 如果被阻止的线程收到信号并重新获得该方法的入口,该怎么办?它是否会在wait()上阻塞?否,调用wait()只会释放正在调用wait()的对
synchronized void doSomething() throws Exception {
synchronized (lock1) {
lock1.wait();
}
wait();
}
一旦它阻塞在lock1.wait()
,其他线程是否能够访问doSomething()
并在其中工作
如果被阻止的线程收到信号并重新获得该方法的入口,该怎么办?它是否会在
wait()
上阻塞?否,调用wait()
只会释放正在调用wait()
的对象上的锁。在示例代码中,lock1
上的锁将被释放,但this
上的锁仍由线程保持。请注意,这不会考虑到可能发生虚假唤醒。看见