瘋狂

          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()
          主站蜘蛛池模板: 吴忠市| 临洮县| 神木县| 丹棱县| 尼勒克县| 江城| 裕民县| 应城市| 垦利县| 汾西县| 黄冈市| 大名县| 夏邑县| 应城市| 栾川县| 澄迈县| 玛沁县| 龙胜| 滦平县| 会东县| 米泉市| 英吉沙县| 建水县| 理塘县| 清流县| 连云港市| 吉林省| 广昌县| 抚顺市| 阿拉善右旗| 册亨县| 庆元县| 邯郸县| 大新县| 孝义市| 清丰县| 望都县| 黄石市| 沙河市| 大安市| 北安市|