“线程中的异常”;“主要”;java.lang.IllegalMonitorStateException
我在“线程中的异常”;“主要”;java.lang.IllegalMonitorStateException,java,multithreading,Java,Multithreading,我在Java中使用Thread,出现以下错误-我不明白为什么 代码: 为了处理非法监视器状态异常,您必须验证只有在调用线程拥有适当的监视器时,才会调用wait方法。最简单的解决方案是将这些调用封装在synchronized块中。应在synchronized语句中调用的同步对象是必须获取其监视器的对象 synchronize (sude) { sude.wait(); } synchronize (sude) { sude.wait(); } 有关更多信息和示例,请查看Object.w
Java
中使用Thread
,出现以下错误-我不明白为什么
代码:
为了处理
非法监视器状态异常
,您必须验证只有在调用线程拥有适当的监视器时,才会调用wait方法。最简单的解决方案是将这些调用封装在synchronized
块中。应在synchronized
语句中调用的同步对象是必须获取其监视器的对象
synchronize (sude) {
sude.wait();
}
synchronize (sude) {
sude.wait();
}
有关更多信息和示例,请查看
Object.wait的Java文档。
IllegalMonitorStateException-如果当前线程不是所有者
对象的监视器的
调用sude.start()之后
您有两个线程在运行:当前线程和运行sude
的线程。当前线程不是对象监视器的所有者
要确保您是对象监视器的所有者,请执行以下操作:
synchronize (sude) {
sude.wait();
}