亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

notyfy()和notifyAll()區別

2019-11-09 16:12:49
字體:
來源:轉載
供稿:網友

wait()方法表示,放棄當前對資源的占有權,等啊等啊,一直等到有人通知我,我才會運行后面的代碼。 notify()方法表示,當前的線程已經放棄對資源的占有, 通知等待的線程來獲得對資源的占有權,但是只有一個線程能夠從wait狀態中恢復, 然后繼續運行wait()后面的語句; notifyAll()方法表示,當前的線程已經放棄對資源的占有, 通知所有的等待線程從wait()方法后的語句開始運行。 讀出什么區別沒有? 上例子,先是一個nofiyAll()的例子: 

java代碼  收藏代碼package com.thread.wait;    public class Wait {      PRivate int counter = 0;      private String name = null;      public Wait(int counter,String name){          this.counter = counter;          this.name = name;      }            public synchronized void doSomthing(){          int tempCounter = --counter;          if(tempCounter <= 0){              customizedNotifyAll();          }          else          {              while(tempCounter > 0){                  try {                      System.out.println(Thread.currentThread().getName()+"-<"+name+tempCounter+">"+"will invoke WAIT()");                      --tempCounter;                      wait();                                                              } catch (InterruptedException e) {                      e.printStackTrace();                      notifyAll();                  }                  System.out.println(Thread.currentThread().getName()+"-<"+name+tempCounter+">"+"has been ACTIVED");              }              customizedNotifyAll();            }                }            public void customizedNotifyAll(){          notifyAll();          System.out.println(Thread.currentThread().getName()+"-<"+name+counter+">"+"::"+"INVOKED NOTIFYALL() AND FINISHED");      }    }  Java代碼  收藏代碼package com.thread.wait;    public class TestThread implements Runnable {            private Wait wait;            public TestThread(Wait wait){          this.wait = wait;      }      public void run() {                    wait.doSomthing();      }            public static void main(String [] args){          Wait wait = new Wait(4,"DAVID");          Thread  t1 = new Thread(new TestThread(wait));          Thread  t2 = new Thread(new TestThread(wait));          Thread  t3 = new Thread(new TestThread(wait));          Thread  t4 = new Thread(new TestThread(wait));          t1.start();          t2.start();          t3.start();          t4.start();      }    }  運行的結果: Thread-0-<DAVID3>will invoke WAIT() Thread-1-<DAVID2>will invoke WAIT() Thread-2-<DAVID1>will invoke WAIT() Thread-3-<DAVID0>::INVOKED NOTIFYALL() AND FINISHED Thread-0-<DAVID2>has been ACTIVED Thread-0-<DAVID2>will invoke WAIT() Thread-1-<DAVID1>has been ACTIVED Thread-1-<DAVID1>will invoke WAIT() Thread-2-<DAVID0>has been ACTIVED Thread-2-<DAVID0>::INVOKED NOTIFYALL() AND FINISHED Thread-0-<DAVID1>has been ACTIVED Thread-0-<DAVID1>will invoke WAIT() Thread-1-<DAVID0>has been ACTIVED Thread-1-<DAVID0>::INVOKED NOTIFYALL() AND FINISHED Thread-0-<DAVID0>has been ACTIVED Thread-0-<DAVID0>::INVOKED NOTIFYALL() AND FINISHED 看到了吧,一旦調用notifyAll()方法,所有的等待線程都會從調用wait()方法的地方繼續運行起來。 這個運行結果可能每次都不一樣,有時候只有兩個線程運行完成而其余兩個線程在等待其它線程調用notifyAll()方法,有時候只有三個線程運行完成,而另一個還在等待中。 由于本文是講解notify以及notifyAll方法,所以對上面的原因不多加以解釋。 然后是notify()方法的例子: 就是將wait類中的customizedNotifyAll()方法中的notifyAll()方法換成notify()方法 運行結果: Thread-1-<DAVID3>will invoke WAIT() Thread-0-<DAVID2>will invoke WAIT() Thread-2-<DAVID1>will invoke WAIT() Thread-3-<DAVID0>::INVOKED NOTIFYALL() AND FINISHED Thread-1-<DAVID2>has been ACTIVED Thread-1-<DAVID2>will invoke WAIT() Did you see that?所有的等待線程中,只有一個線程運行完成了,而其它的線程還在傻傻地等待,poor guys! 每次運行的結果會不一樣,但是始終只有一個線程能夠運行完成。 Summary: notify()方法只是讓一個線程從wait中恢復過來,至于具體是哪個,那就得看那些線程的運氣了(不設置優先級的情況下),繼續執行后面的語句; notifyAll()方法是讓所有的線程從wait中恢復過來,繼續執行后面的語句。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情在线一区| 欧美日韩免费网站| 红桃视频成人在线观看| 亚洲精品短视频| 北条麻妃在线一区二区| 亚洲xxxx视频| 久久天天躁狠狠躁夜夜躁| 欧美在线视频播放| 久久久久久国产精品三级玉女聊斋| 中文精品99久久国产香蕉| 亚洲精品国产精品自产a区红杏吧| 亚洲色图13p| 欧美与欧洲交xxxx免费观看| 欧洲永久精品大片ww免费漫画| 伊人成人开心激情综合网| 久久精品国产亚洲精品| 色偷偷噜噜噜亚洲男人的天堂| 亚洲天堂一区二区三区| 91香蕉国产在线观看| 亚洲嫩模很污视频| 色妞色视频一区二区三区四区| 欧美日韩国产在线看| 亚洲人成77777在线观看网| 欧美大片va欧美在线播放| 中文字幕在线看视频国产欧美在线看完整| 欧美日韩国产中文字幕| 国产mv免费观看入口亚洲| 欧美亚洲激情在线| 国产免费一区二区三区在线观看| 亚洲а∨天堂久久精品喷水| 久久99久久99精品中文字幕| 欧美精品videofree1080p| 久久久精品国产亚洲| 日韩欧美福利视频| 大伊人狠狠躁夜夜躁av一区| 亚洲日韩中文字幕在线播放| 精品国产乱码久久久久久婷婷| 九色精品美女在线| 成人精品福利视频| 色综久久综合桃花网| 久久精品国产一区二区三区| 91美女片黄在线观看游戏| 91欧美日韩一区| 欧美区二区三区| 中文字幕亚洲欧美一区二区三区| 国产成人精品免费视频| 久久99热这里只有精品国产| 136fldh精品导航福利| 久99久在线视频| 欧美疯狂做受xxxx高潮| 亚洲风情亚aⅴ在线发布| 91精品国产沙发| 精品福利免费观看| 亚洲国产精久久久久久久| 国产精品久久97| 亚洲色图50p| 久久99热精品| 国产精品久久久久久久久久99| 国产精品91久久久| 亚洲黄在线观看| 一区二区三区视频免费在线观看| 成人网在线观看| 国产日韩欧美视频在线| 97国产suv精品一区二区62| 在线观看视频99| 亚洲热线99精品视频| 国产精品久久久久久亚洲影视| 国产成人在线一区| 亚洲精品美女久久| 日韩大片免费观看视频播放| 4438全国亚洲精品在线观看视频| 亚洲免费高清视频| 欧美国产日韩一区二区在线观看| 欧美国产日韩在线| 麻豆一区二区在线观看| 日韩最新中文字幕电影免费看| 亚洲精品日韩在线| 亚洲高清一区二| 国产丝袜精品视频| 日韩精品在线观| 91av在线免费观看| 久久久久国产精品免费网站| 亚洲精品成人免费| 亚洲自拍偷拍在线| 亚洲人成在线观| 欧美成人在线影院| 亚洲精品日产aⅴ| 亚洲欧美一区二区激情| 日韩精品www| 国产精品久久久久久久久粉嫩av| 成人av.网址在线网站| 国产婷婷色综合av蜜臀av| 国产成人精品免费久久久久| 色老头一区二区三区在线观看| 欧美中文在线观看国产| 久久亚洲精品一区| 成人免费观看a| 日韩a**中文字幕| 色噜噜狠狠色综合网图区| 九九热这里只有在线精品视| 亚洲精美色品网站| 欧美性猛交xxxx免费看久久久| 亚洲国产精品久久91精品| 国产精品吹潮在线观看| 欧美一级片免费在线| 日韩精品极品在线观看| 亚洲第一页中文字幕| 色综合天天狠天天透天天伊人| 国产激情视频一区| 久久久999精品免费| 粉嫩av一区二区三区免费野| 国产精品自拍偷拍| 欧美寡妇偷汉性猛交| 亚洲国模精品私拍| 国产精品久久久久久久久久ktv| 久久久视频精品| 日韩美女视频免费在线观看| 日韩人体视频一二区| 8090理伦午夜在线电影| 欧美一区二区大胆人体摄影专业网站| 欧美高清不卡在线| 亚洲视频电影图片偷拍一区| 91青草视频久久| 国产精品高潮在线| 国产精品啪视频| 91国自产精品中文字幕亚洲| 在线观看日韩欧美| 亚洲男人天堂视频| 国产精品扒开腿做爽爽爽的视频| 68精品国产免费久久久久久婷婷| 96pao国产成视频永久免费| 91久久精品国产91性色| 日本中文字幕成人| 欧美电影免费观看| 亚洲精品国精品久久99热| 国产精品一二三在线| 日韩国产在线播放| 日韩最新免费不卡| 欧洲亚洲免费在线| 国产亚洲精品成人av久久ww| 最近2019年中文视频免费在线观看| 欧美激情女人20p| 中文字幕日韩欧美精品在线观看| 日韩av电影手机在线观看| 欧美亚洲午夜视频在线观看| 国产精欧美一区二区三区| 国产精品福利久久久| 91精品国产免费久久久久久| 国产精品91免费在线| 日韩免费在线视频| 亚洲性av网站| xxxx欧美18另类的高清| 亚洲人在线视频| 久久久久九九九九| 久久99亚洲精品| 欧美极品少妇xxxxⅹ喷水| 亚洲精品久久久久| 精品视频www| 亚洲欧美日韩区| 亚洲japanese制服美女| 成人妇女淫片aaaa视频| 午夜精品在线视频| 亚洲情综合五月天| 国产精品成人va在线观看|