關于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 © 瘋狂