黑马程序员技术交流社区

标题: 线程问题 [打印本页]

作者: 成都校区    时间: 2012-3-21 15:10
标题: 线程问题
子线程wait(1000)的时候抛出异常
java.lang.IllegalMonitorStateException: object not locked by thread before wait()

这是怎么回事,应该怎样解决?
作者: liumeng    时间: 2012-3-21 15:16
源码能发过来
作者: 马云    时间: 2012-3-21 15:20
这个异常是wait里必须处理的异常,你要么try catch或throws

作者: 赵孟恩    时间: 2012-3-21 15:28
抛出的异常表明某一线程已经试图等待对象的监视器,或者试图通知其他正在等待对象的监视器而本身没有指定监视器的线程。
作者: ♂诸侯♂    时间: 2012-3-21 15:29
同意马云的回答
作者: 李晓旭    时间: 2012-3-21 16:36
你调用的是Object的wait()方法;
public final void wait() throws InterruptedException{}
IllegalMonitorStateException - 如果当前线程不是此对象监视器的所有者。
抛出的异常表明某一线程已经试图等待对象的监视器,或者试图通知其他正在等待对象的监视器而本身没有指定监视器的线程。
因此你必须添加一个同步代码块,或者把方法改成同步方法





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2