gpt4 book ai didi

java - 有谁知道我为什么会收到此 IllegalMonitorStateException?

转载 作者:搜寻专家 更新时间:2023-10-31 20:28:49 25 4
gpt4 key购买 nike

我有一个启动 getty 的集成测试,它又启动了一个网络应用程序。Web 应用程序将跨越一些将运行初始化任务的异步线程。之后就可以进行测试了。现在,因为我必须等待其中一项任务完成,所以我想到将静态监视器放在共享类中:

private static Object bootstrapDone = new Object();

使用以下访问器方法:

public static void signalEsBoostrapCompleted(){
synchronized (bootstrapDone){
bootstrapDone.notifyAll();
}
}

public static void waitEsBoostrapCompleted() throws InterruptedException {
synchronized (bootstrapDone){
bootstrapDone.wait(20000);
}
}

如果我在测试中运行它,我会得到:线程“Thread-11”中的异常 java.lang.IllegalMonitorStateException 在 java.lang.Object.notifyAll(本地方法)

来自 notifyAll 所在的行。我不知道为什么会这样。谁能帮忙?

最佳答案

我能想到的唯一可能的明显方法是:在调用 synchronized(bootstrapDone) 和调用 bootstrapDone.notifyAll()

bootstrapDone 设为最终版本,任何无法再编译的都可能是罪魁祸首。

关于java - 有谁知道我为什么会收到此 IllegalMonitorStateException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19365773/

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