【发布时间】:2017-05-24 02:09:59
【问题描述】:
void waitForSignal() {
Object obj = new Object();
synchronized(Thread.currentThread()) {
obj.wait();
obj.notify();
}
}
我知道它可能会抛出一个InterruptedException,它还有其他问题吗?比如死锁……
【问题讨论】:
-
它将如何醒来?
-
它会抛出一个
IllegalMonitorStateException,因为你没有在obj上同步。 -
在当前线程上同步是完全没有意义的。您保护自己免受的唯一线程是您自己的线程。您需要在 object 上进行同步。
标签: java concurrency synchronization