瘋狂

          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 瘋狂 閱讀(27832) 評論(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()
          主站蜘蛛池模板: 宜川县| 绥中县| 江口县| 高淳县| 无极县| 夹江县| 孟津县| 前郭尔| 宿州市| 永善县| 晋城| 瑞昌市| 宾阳县| 梓潼县| 长白| 同仁县| 九寨沟县| 富蕴县| 昆明市| 德阳市| 青州市| 望城县| 芜湖县| 金平| 麻栗坡县| 洛阳市| 河西区| 临高县| 洞头县| 商洛市| 新化县| 玛纳斯县| 丹江口市| 霍林郭勒市| 丹棱县| 广宗县| 龙井市| 文山县| 甘肃省| 阳原县| 巴彦淖尔市|