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

首頁 > 編程 > Java > 正文

詳細分析java線程wait和notify

2019-11-26 15:03:15
字體:
來源:轉載
供稿:網友

wait()和notify()是直接隸屬于Object類,也就是說,所有對象都擁有這一對方法。初看起來這十分 不可思議,但是實際上卻是很自然的,因為這一對方法阻塞時要釋放占用的鎖,而鎖是任何對象都具有的,調用任意對象的 wait() 方法導致線程阻塞,并且該對象上的鎖被釋放。而調用任意對象的notify()方法則導致因調用該對象的wait() 方法而阻塞的線程中隨機選擇的一個解除阻塞(但要等到獲得鎖后才真正可執行)。

其次,wait()和notify()可在任何位置調用,但是這一對方法卻必須在 synchronized 方法或塊中調用,理由也很簡單,只有在 synchronized 方法或塊中當前線程才占有鎖,才有鎖可以釋放。同樣的道理,調用這一對方法的對象上的鎖必須為當前線程所擁有,這樣才有鎖可以 釋放。因此,方法調用必須放置在這樣的 synchronized 方法或塊中,該方法或塊的加鎖對象就是調用這些方法的對象。若不滿足這一條 件,則程序雖然仍能編譯,但在運行時會出現IllegalMonitorStateException 異常。

 wait() 和 notify() 方法的上述特性決定了它們經常和synchronized 方法或塊一起使用,將它們和操作系統的進程間通信機制作 一個比較就會發現它們的相似性:synchronized方法或塊提供了類似于操作系統原語的功能,它們的執行不會受到多線程機制的干擾,而這一對方法則 相當于 block 和wakeup 原語(這一對方法均聲明為 synchronized)。它們的結合使得我們可以實現操作系統上一系列精妙的進程間 通信的算法(如信號量算法),并用于解決各種復雜的線程間通信問題。
 

關于 wait() 和 notify() 方法最后再說明兩點:
    第一:調用 notify() 方法導致解除阻塞的線程是從因調用該對象的 wait() 方法而阻塞的線程中隨機選取的,我們無法預料哪一個線程將會被選擇,所以編程時要特別小心,避免因這種不確定性而產生問題。
    第二:除了 notify(),還有一個方法 notifyAll() 也可起到類似作用,唯一的區別在于,調用 notifyAll() 方法將把因調 用該對象的 wait() 方法而阻塞的所有線程一次性全部解除阻塞。當然,只有獲得鎖的那一個線程才能進入可執行狀態。

相關wait和notify使用demo:

/** * <pre> * 子線程循環10次,接著主線程循環100次,接著有回到子線程循環10次, * 接著再回到主線程循環100次,如此執行50次 * </pre> * @author ketqi */ public class WaitNotifyDemo {   public static void main(String[] args) {      final Business business = new Business();     new Thread(new Runnable() {       @Override       public void run() {         for (int i = 1; i <= 50; i++) {           business.sub(i);         }        }     }).start();      for (int i = 1; i <= 50; i++) {       business.main(i);     }   } }  class Business {   private boolean isMainThread = true;    public synchronized void sub(int i) {     while (!isMainThread) {       try {         this.wait();       } catch (InterruptedException e) {         e.printStackTrace();       }     }     for (int j = 1; j <= 10; j++) {       System.out.println("sub thread sequence of " + j + ",loop of " + i);    }     isMainThread = false;     this.notify();   }   public synchronized void main(int i) {     while (isMainThread) {       try {        this.wait();       } catch (InterruptedException e) {         e.printStackTrace();       }     }     for (int j = 1; j <= 100; j++) {       System.out.println("main thread sequence of " + j + ",loop of " + i);     }     isMainThread = true;     this.notify();   } }

以上就是本文的全部內容,希望大家可以喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩免费黄色av| 97视频在线看| 色偷偷噜噜噜亚洲男人的天堂| 亚洲精品福利视频| 亚洲成**性毛茸茸| 欧美亚洲在线播放| 久久国产精品视频| 亚洲精品成人久久久| 欧美在线一区二区视频| 成人激情在线播放| 精品国产户外野外| 亚洲欧美日韩精品久久奇米色影视| 狠狠色香婷婷久久亚洲精品| 国产高清在线不卡| 国产精品久久国产精品99gif| 国产精品网红直播| 欧美一区二区三区……| 日韩美女在线看| 亚洲美女性生活视频| 国产精品18久久久久久首页狼| 中文字幕在线成人| 亚洲免费av片| 久久国产精品99国产精| 92裸体在线视频网站| 国产精品久久久久久久9999| 久久久久久美女| 日韩成人激情影院| 国产久一一精品| 97国产精品视频人人做人人爱| 在线看日韩av| www.久久撸.com| 92版电视剧仙鹤神针在线观看| 日韩中文字幕在线播放| 91社区国产高清| 亚洲精品视频免费| 欧美大片va欧美在线播放| 2019亚洲男人天堂| 国产精品入口免费视| 伊人久久精品视频| 91国在线精品国内播放| 久久久久久成人| 亚洲色在线视频| 国产精品日韩久久久久| 日韩欧美在线一区| 性日韩欧美在线视频| 欧美日韩另类在线| 国产精品免费视频xxxx| 日韩三级成人av网| 亚洲欧美日韩一区在线| 国产欧亚日韩视频| 国产拍精品一二三| 91精品国产99| 人人澡人人澡人人看欧美| 精品亚洲国产成av人片传媒| 日韩高清av一区二区三区| 亚洲有声小说3d| 亚洲国产精品va在看黑人| 国产盗摄xxxx视频xxx69| 国产精品网红直播| 国产精品久久二区| 精品国产31久久久久久| 亚洲欧洲自拍偷拍| 国内精品久久久久影院 日本资源| 日本精品免费一区二区三区| 69视频在线播放| 久久久最新网址| 亚洲激情在线观看视频免费| 午夜精品久久久久久久99热| 亚洲国产精品va在线| 欧美日韩免费在线| 国产极品精品在线观看| 伊人久久久久久久久久| 8050国产精品久久久久久| 一本色道久久88精品综合| 亚洲大尺度美女在线| 欧美日韩一区二区在线播放| 日韩成人中文字幕| 欧美专区第一页| 91av中文字幕| 久久高清视频免费| 欧美日韩另类视频| 亚洲欧美激情在线视频| 一区二区三区回区在观看免费视频| 日韩在线精品一区| 欧美—级a级欧美特级ar全黄| 国内精品久久久久久久久| 日韩中文有码在线视频| 91久久国产精品91久久性色| 久久久噜噜噜久久| 欧美另类暴力丝袜| 亚洲精品在线看| 午夜精品久久久久久久男人的天堂| 日韩天堂在线视频| 日本视频久久久| 亚洲国产成人91精品| 91久久在线视频| 亚洲自拍偷拍色图| 激情亚洲一区二区三区四区| 国产精品久久久久久久一区探花| 国产精品一区二区在线| 亚洲一区二区三区乱码aⅴ| 神马国产精品影院av| 亚洲男人天堂2024| 欧美成人在线影院| 国产69精品久久久久久| 中文精品99久久国产香蕉| 欧美成人中文字幕| 国产亚洲欧美日韩一区二区| 在线观看国产欧美| 色七七影院综合| 97在线看免费观看视频在线观看| 中文字幕欧美日韩精品| 日韩视频在线免费| 日韩高清a**址| 亚洲视频在线免费观看| 久久久久久中文字幕| 欧美激情亚洲国产| 国产一区二区三区在线播放免费观看| 国产精品久久77777| 欧美国产日本高清在线| 亚洲二区在线播放视频| 亚洲成人免费在线视频| 欧美一区二区视频97| 国产精品稀缺呦系列在线| 亚洲欧洲日韩国产| 久久久亚洲影院你懂的| 国产欧美一区二区三区在线| 亚洲最大成人网色| 久久福利视频网| 国产精品美女www| 日韩av在线资源| 亚洲人成网站在线播| 欧美视频中文字幕在线| 97人人做人人爱| 欧美一区二区三区四区在线| 日韩电影免费在线观看| 影音先锋日韩有码| 亚洲欧美制服丝袜| 成人黄色在线观看| 97在线精品视频| 91欧美激情另类亚洲| 久久中国妇女中文字幕| 最近2019中文字幕大全第二页| 精品国产一区二区三区四区在线观看| 97热在线精品视频在线观看| 精品亚洲夜色av98在线观看| 欧美午夜影院在线视频| 欧美成人午夜免费视在线看片| 国产一区视频在线播放| 欧美激情国产日韩精品一区18| 久久精品久久精品亚洲人| 色综合91久久精品中文字幕| 97人洗澡人人免费公开视频碰碰碰| 欧美福利视频在线观看| 久久69精品久久久久久国产越南| 亚洲影院污污.| 91探花福利精品国产自产在线| 欧美激情按摩在线| 久久99国产综合精品女同| 欧美激情网站在线观看| 亚洲美女福利视频网站| 色婷婷久久一区二区| 欧美精品久久久久久久久久| 亚洲国产精品久久久|