“线程中的异常”;“主要”;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();
}