<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    神奇好望角 The Magical Cape of Good Hope

    庸人不必自擾,智者何需千慮?
    posts - 26, comments - 50, trackbacks - 0, articles - 11
      BlogJava :: 首頁 ::  :: 聯系 :: 聚合  :: 管理

    非主流并發工具之 Exchanger

    Posted on 2011-12-27 10:50 蜀山兆孨龘 閱讀(1526) 評論(0)  編輯  收藏 所屬分類: Java SE

    Exchanger 用來讓兩個線程互相等待并交換計算結果。這個類的用法很簡單,因為它就定義了兩個重載的 exchange 方法,參數多的那個無非增加了對超時的支持。當一個線程調用 exchange 的時候(以計算結果作為參數),它就開始等待另一個線程調用 exchange,然后兩個線程分別收到對方調用 exchange 時傳入的參數,從而完成了計算結果的交換。

    不用太多的解釋,運行下面這個例子就一清二楚:

    final Exchanger<String> e = new Exchanger<>();
    
    new Thread() {
        @Override
        public void run() {
            long id = Thread.currentThread().getId();
            String s = "abc";
            System.out.println("線程 [" + id + "] 算出 " + s);
    
            try {
                TimeUnit.SECONDS.sleep(new Random().nextInt(5));
                System.out.println("線程 [" + id + "] 收到 " + e.exchange(s));
            } catch (InterruptedException ex) {
                ex.printStackTrace();
            }
        }
    }.start();
    
    new Thread() {
        @Override
        public void run() {
            long id = Thread.currentThread().getId();
            String s = "xyz";
            System.out.println("線程 [" + id + "] 算出 " + s);
    
            try {
                TimeUnit.SECONDS.sleep(new Random().nextInt(5));
                System.out.println("線程 [" + id + "] 收到 " + e.exchange(s));
            } catch (InterruptedException ex) {
                ex.printStackTrace();
            }
        }
    }.start();
        

    運行結果(可能為):

    線程 [9] 算出 abc
    線程 [10] 算出 xyz
    線程 [10] 收到 abc
    線程 [9] 收到 xyz

    最后強調下,該類只適用于兩個線程,妄圖用它來處理多個生產者和消費者之間的數據交換是注定要失敗的……

    主站蜘蛛池模板: 免费大黄网站在线观看| 女人与禽交视频免费看| 国产亚洲日韩一区二区三区| 国产一区二区三区亚洲综合| 亚洲区小说区图片区QVOD| 美女被免费视频网站| 四虎永久成人免费影院域名| 亚洲AV日韩AV永久无码色欲| 女人18毛片水真多免费看| 亚洲欧美成人综合久久久| 四虎1515hm免费国产| 成人嫩草影院免费观看| 亚洲一区二区三区偷拍女厕| 在线毛片片免费观看| 日木av无码专区亚洲av毛片| 综合在线免费视频| 亚洲三级高清免费| 免费一级毛片免费播放| 91成人免费观看在线观看| 久久精品国产亚洲AV电影 | 亚洲国产精品无码成人片久久 | 免费国产高清毛不卡片基地| 亚洲黄片毛片在线观看| 中文字幕无线码中文字幕免费| 国产∨亚洲V天堂无码久久久| 日韩免费无码视频一区二区三区 | 亚洲永久中文字幕在线| 国产成人A在线观看视频免费| 亚洲人成电影网站色www| 亚洲日韩在线第一页| 99在线免费观看视频| 亚洲风情亚Aⅴ在线发布| 中文字幕不卡亚洲 | 亚洲午夜精品久久久久久浪潮| 免费国产99久久久香蕉| 亚洲精品国产摄像头| 亚洲精品国精品久久99热一| 无码人妻久久一区二区三区免费丨| 日韩一级片免费观看| 亚洲精品视频久久| 亚洲男人av香蕉爽爽爽爽|