IllegalMonitorStateException - 等待

时间:2013-11-18 22:04:34

标签: java multithreading wait

我有这段代码:

public static void main(String[] args) throws InterruptedException {
    Object obj = new Object();

    obj.wait();
    obj.notify();

}
请不要理解为什么抛出java.lang.IllegalMonitorStateException ??

1 个答案:

答案 0 :(得分:3)

为了等待或通知对象,you must be in a synchronized block locking on the object.

以下代码将起作用(运行但不执行任何操作,因为没有要同步的线程):

public static void main(String[] args) throws InterruptedException {
    Object obj = new Object();
    synchronized(obj){
        obj.wait();
        obj.notify();
    }
}