星期三, 六月 08, 2005

Java Thread Wait()或notifyAll()引起IllegalMonitorStateException问题解决方法.

java.lang.IllegalMonitorStateException: current thread not owner
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:426)
at LockTip.run(LockTip.java:18)

解决这个问题很简单,有两个办法:
1.加上synchronized 到Method定义的时候
比如synchronized void afterInputData()P{....;notifyAll();}
2.用this关键词或其他对象上加上synchronized 关键词
synchronized(this)
{
...;
notifyAll();//或其他变量名.notifyAll();
}