我有一个启动 getty 的集成测试,然后它又启动一个 Web 应用程序。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);
}
}
如果我在测试中运行它,我会得到: java.lang.Object.notifyAll(Native Method) 线程“Thread-11”java.lang.IllegalMonitorStateException 中的异常
从 notifyAll 所在的行开始。我不知道为什么会这样。任何人都可以帮忙吗?