cuiyi's blog(崔毅 crazycy)

          記錄點滴 鑒往事之得失 以資于發展
          數據加載中……

          線程中的current thread not owner異常錯誤

          非常感謝你的閱讀,如果你覺得好或者對你有幫助,請積極給一個留言反饋以示鼓勵。?

          多線程常用的一些方法: wait(),wait(long),notify(),notifyAll()等

          這些方法是當前類的實例方法,

          wait()????? 是使持有對象鎖的線程釋放鎖;
          wait(long)是使持有對象鎖的線程釋放鎖時間為long(毫秒)后,再次獲得鎖,wait()和wait(0)等價;
          notify()??? 是喚醒一個正在等待該對象鎖的線程,如果等待的線程不止一個,那么被喚醒的線程由jvm確定;
          notifyAll? 是喚醒所有正在等待該對象鎖的線程.

          并且應該優先使用notifyAll()方法,因為喚醒所有線程比喚醒一個線程更容易讓jvm找到最適合被喚醒的線程.

          對于上述方法,只有在當前線程中才能使用,否則報運行時錯誤java.lang.IllegalMonitorStateException:?current?thread?not?owner.

          從實現角度來分析:
          在線程調用wait()方法時,需要把它放到一個同步段里,即應該在調用前使用
          1synchroed(this){
          2??thread.wait();
          3??
          4}

          5

          否則將會出現"java.lang.IllegalMonitorStateException: current thread not owner"的異常。


          Thanks very much to visit blog,? welcome your feedback,? your feedback is the Driver && Power to me

          posted on 2006-10-08 19:21 crazycy 閱讀(13853) 評論(24)  編輯  收藏 所屬分類: JavaSE語言

          評論

          # re: 線程中的current thread not owner異常錯誤  回復  更多評論   

          您的內容對我有幫助,謝謝!
          2007-05-30 14:22 | shaoxiongwang

          # re: 線程中的current thread not owner異常錯誤  回復  更多評論   

          thak you !
          2007-07-12 15:14 | netiger

          # re: 線程中的current thread not owner異常錯誤  回復  更多評論   

          謝謝^_^
          2007-08-01 17:17 | txd

          # re: 線程中的current thread not owner異常錯誤  回復  更多評論   

          3ks
          2008-01-21 15:59 | ronchie

          # re: 線程中的current thread not owner異常錯誤  回復  更多評論   

          ths
          2008-03-23 20:48 | er

          # re: 線程中的current thread not owner異常錯誤  回復  更多評論   

          謝謝啦
          2008-03-31 16:46 | hxfein

          # re: 線程中的current thread not owner異常錯誤  回復  更多評論   

          Once I was given an interview in IBM, the program is just to write interaction between productor and consumer, I met the problem; and, I solved at that time, but sadly I cannot give the explation about this.
          2008-03-31 22:13 | crazycy

          # re: 線程中的current thread not owner異常錯誤  回復  更多評論   

          非常感謝!受益匪淺!我在用友面試時就遇到這個問題!但是沒有答上來!
          2008-04-16 18:05 | zhanggl

          # re: 線程中的current thread not owner異常錯誤  回復  更多評論   

          Thanks! It works!
          2008-08-01 12:14 | Shengkai Zhu

          # re: 線程中的current thread not owner異常錯誤  回復  更多評論   

          謝謝!
          2008-10-08 13:23 | freemelody

          # re: 線程中的current thread not owner異常錯誤  回復  更多評論   

          感謝
          2008-11-11 10:11 | 筋抽的狗狗

          # re: 線程中的current thread not owner異常錯誤  回復  更多評論   

          e感謝,根據您的幫助,我解決了此異常。
          2008-11-20 13:14 | autumn

          # re: 線程中的current thread not owner異常錯誤  回復  更多評論   

          Anyway, you are best.
          2009-03-23 09:43 | IMGM

          # re: 線程中的current thread not owner異常錯誤  回復  更多評論   

          thanks you!
          it is very helpfull
          2009-06-10 18:03 | duanhw

          # re: 線程中的current thread not owner異常錯誤  回復  更多評論   

          thank you
          2009-06-19 09:49 | mouse

          # re: 線程中的current thread not owner異常錯誤  回復  更多評論   

          只有在當前線程中才能使用???
          public class TaskMonitor extends Thread {
          private CreateTask create = null;
          public TaskMonitor(CreateTask create){
          this.create = create;
          }
          //任務監控,每隔2妙,通知CreateTask創造1條任務放到隊列中
          public void run() {
          while(true){
          try {
          Thread.sleep(2000);
          System.out.println("TaskMonitor");
          synchronized (create) {
          create.notify();
          }
          } catch (InterruptedException e) {
          e.printStackTrace();
          }
          }
          }
          }
          其中的create就是另一個線程的對象
          2009-06-22 13:49 | 乞丐

          # re: 線程中的current thread not owner異常錯誤  回復  更多評論   

          Thank you.
          2009-09-16 16:59 | winstone

          # re: 線程中的current thread not owner異常錯誤  回復  更多評論   

          good!!!
          2009-11-22 10:17 | missme

          # re: 線程中的current thread not owner異常錯誤  回復  更多評論   

          謝謝你的分析,但是還不是很詳細,如果能再詳細一點就好了。
          2010-02-04 23:18 | netant83

          # re: 線程中的current thread not owner異常錯誤[未登錄]  回復  更多評論   

          謝謝!
          2010-03-20 15:20 | 1

          # re: 線程中的current thread not owner異常錯誤[未登錄]  回復  更多評論   

          你說的不對,兩個線程共用一個鎖,是可以的。
          public A extends Thread{
          public static Object lock = new Object();
          public void run(){
          synchronized(lock){
          try {
          lock.wait();
          } catch (InterruptedException e) {
          e.printStackTrace();
          }
          }
          }
          }
          public B extends Thread{
          public void run(){
          Object lock = A.lock;
          synchronized(lock){
          lock.notify();
          }
          }
          }
          2010-07-02 12:24 | tony

          # re: 線程中的current thread not owner異常錯誤  回復  更多評論   

          很好的內容,有幫助
          2010-07-26 10:52 | wharry

          # re: 線程中的current thread not owner異常錯誤[未登錄]  回復  更多評論   

          你說的很好,對我很有用!非常感謝!
          2011-04-02 23:08 | solo

          # re: 線程中的current thread not owner異常錯誤  回復  更多評論   

          很有用
          2015-09-10 14:32 | 11
          主站蜘蛛池模板: 浪卡子县| 麻阳| 苍溪县| 大石桥市| 景宁| 弥渡县| 泸州市| 古丈县| 安龙县| 开原市| 陇南市| 襄城县| 永靖县| 青龙| 科技| 霸州市| 隆回县| 那坡县| 北碚区| 榆林市| 扶沟县| 昌邑市| 滦平县| 宜兰市| 洪湖市| 正镶白旗| 林芝县| 招远市| 玉田县| 镇康县| 沂水县| 房山区| 洛宁县| 崇信县| 静安区| 灌阳县| 吐鲁番市| 巴彦淖尔市| 二连浩特市| 清新县| 基隆市|