• 欢迎光临~

使用wait notify 报错 IllegalMonitorStateException

开发技术 开发技术 2022-07-19 次浏览

 

解决办法:相关的wait及notify需要在synchronized修饰的方法下执行

Object object = new Object();
new Thread(() -> {
    for (int i = 0; i < 10; i++) {
        try {
            synchronized (object) {
                object.wait();
            }
            System.out.println("wait end:" + i);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}).start();
new Thread(() -> {
    for (int i = 0; i < 10; i++) {
        System.out.println("notify start:" + i);
        synchronized (object) {
            object.notify();
        }
    }
}).start();

 

程序员灯塔
转载请注明原文链接:使用wait notify 报错 IllegalMonitorStateException
喜欢 (0)