gpt4 book ai didi

java - 此代码可能会引发 IllegalMonitorStateException

转载 作者:行者123 更新时间:2023-12-01 17:27:51 25 4
gpt4 key购买 nike

void waitForSignal(){
Object ob =new Object();

synchronized (Thred.currentThread()) {
try {
ob.wait();
ob.notify();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

此方法抛出 IllegalMonitorStateException。有人可以解释一下为什么会这样吗?

提前致谢

最佳答案

您应该只对已获取锁定的对象调用 wait

在您的代码中,您已获取了 Thread.currentThread() 上的锁,但您在 ob 上调用它,这将抛出 IllegalMonitorStateException >.

因此,您应该将同步块(synchronized block)更改为:-

synchronized (ob) {

}

关于java - 此代码可能会引发 IllegalMonitorStateException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13591517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com