关于IllegalMonitorStateException异常:
api中的解释public class IllegalMonitorStateExceptionextends RuntimeException抛出的异常表明某一线程已经试图等待对象的监视器,或者试图通知其他正在等待对象的监视器而本身没有指定监视器的线程。 从以下版本开始: JDK1.0 另请参见: Object.notify(), Object.notifyAll(), Object.wait(), Object.wait(long), Object.wait(long, int), 序列化表格
notify()
notifyAll()
wait()
wait(long)
wait(long, int)操作,否则就会报IllegalMonitorStateException异常。例如 :exapmle 1,锁定方法所属的实例对象:public synchronized void method(){ //然后就可以调用:this.notify()... //或者直接调用notify()...}exapmle 2,锁定方法所属的实例的Class:public Class Test{ public static synchronized void method(){ //然后调用:Test.class.notify()... }}exapmle 3,锁定其他对象:public Class Test{public Object lock = new Object(); public static void method(){ synchronized (lock) { //需要调用 lock.notify(); } }}
Powered by: BlogJava Copyright © 疯狂