【java.lang.IllegalMonitorStateException异常 】 | IT修真院·坑乎
问题已收录 java.lang.IllegalMonitorStateException异常
我也踩过这个坑( 1 )
已统计您的踩坑,无需重复点击
回答(1)
详细描述
错误截图
源码
编辑于2024-09-21
  • [深圳|结业弟子]JAVA-娄文彬
    0
    抛出该异常表明某一线程已经试图等待对象的监视器,或者试图通知其他正在等待对象的监视器,然而本身没有指定的监视器的线程。

    也就是当前的线程不是此对象监视器的所有者。当前线程要锁定该对象之后,才能用锁定的对象执行这些方法,这里需要用到synchronized关键字,锁定哪个对象就用哪个对象来执行notify(), notifyAll(),wait(), wait(long), wait(long, int)操作,否则就会报IllegalMonitorStateException异常。 


    理解的意思就是我当前这个线程使用了synchronized(target)进行线程保护,然而再程序里面没有讲清楚用哪个对象去wait()、notify(),所以程序找不到锁定的对象。要解决这个问题,只需要指定明白是用的哪个对象进行的锁。


    编辑于2018-08-03