瘋狂

          STANDING ON THE SHOULDERS OF GIANTS
          posts - 481, comments - 486, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          關于java.lang.IllegalMonitorStateException

          Posted on 2011-10-14 18:03 瘋狂 閱讀(27818) 評論(3)  編輯  收藏 所屬分類: java
          關于IllegalMonitorStateException異常:
          api中的解釋
          public class IllegalMonitorStateExceptionextends RuntimeException

          拋出的異常表明某一線程已經試圖等待對象的監視器,或者試圖通知其他正在等待對象的監視器而本身沒有指定監視器的線程。 



          從以下版本開始: 
          JDK1.
          0 
          另請參見: 
          Object.notify(), Object.notifyAll(), Object.wait(), Object.wait(
          long), Object.wait(longint), 序列化表格
           也就是當前的線程不是此對象監視器的所有者。也就是要在當前線程鎖定對象,才能用鎖定的對象此行這些方法,需要用到synchronized ,鎖定什么對象就用什么對象來執行
          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();
              } 
           }
          }

          評論

          # re: 關于java.lang.IllegalMonitorStateException   回復  更多評論   

          2014-09-23 17:13 by hibernate
          經典!一直沒弄明白的一個問題,被你一點即破,感謝!

          # re: 關于java.lang.IllegalMonitorStateException   回復  更多評論   

          2014-12-23 17:01 by 經典
          真是一語道破啊!這才是經典。

          # re: 關于java.lang.IllegalMonitorStateException   回復  更多評論   

          2016-02-12 00:04 by 浪得虛名
          找了好多資料沒解決的問題,到這里終于明白了,就沒看破this.notify()要換成lock.notify()
          主站蜘蛛池模板: 赣州市| 孟津县| 新龙县| 太和县| 汪清县| 建始县| 崇礼县| 会泽县| 绍兴市| 红原县| 盐池县| 永安市| 肥东县| 微山县| 海南省| 堆龙德庆县| 新安县| 莱芜市| 恩施市| 乐昌市| 砀山县| 娱乐| 从江县| 金沙县| 阜阳市| 右玉县| 临洮县| 周口市| 北辰区| 九龙坡区| 福州市| 高雄市| 上杭县| 那坡县| 渭源县| 新乐市| 顺平县| 昌邑市| 山东省| 武隆县| 来宾市|