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

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

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

    愛睡覺的程序員

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      5 隨筆 :: 0 文章 :: 0 評論 :: 0 Trackbacks
         CyclicBarrier,讓多線程齊步走。讓多個線程到達某一個點之后,再同時往下運行。
        思考這樣一個案例:兩個工人從兩端挖掘隧道,各自獨立奮戰,中間不溝通,如果兩人在匯合點處碰頭了,則表明隧道已經挖通。這描繪的也是在多線程編程中,兩個線程獨立運行,在沒有線程間通信的情況下,如何解決兩個線程匯集在同一原點的問題。Java提供了CyclicBarrier(關卡,也有翻譯為柵欄)工具類來實現。
        代碼如下:
      1 import java.util.Random;
     2 import java.util.concurrent.CyclicBarrier;
     3 import java.util.concurrent.TimeUnit;
     4 
     5 public class CyclicBarrierTest {
     6     public static void main(String[] args) {
     7         // 設置匯集數量,以及匯集完成后的任務
     8         CyclicBarrier cb = new CyclicBarrier(2, new Runnable() {
     9             public void run() {
    10                 System.out.println("隧道已經打通!");
    11             }
    12         });
    13         // 工人1挖隧道
    14         new Thread(new Worker(cb), "工人1").start();
    15         // 工人2挖隧道
    16         new Thread(new Worker(cb), "工人2").start();
    17     }
    18 
    19 
    20     static class Worker implements Runnable {
    21         // 關卡
    22         private CyclicBarrier cb;
    23 
    24         public Worker(CyclicBarrier _cb) {
    25             cb = _cb;
    26         }
    27 
    28         public void run() {
    29             try {
    30                 TimeUnit.SECONDS.sleep(new Random().nextInt(10));
    31                 System.out.println(Thread.currentThread().getName() + "-到達匯合點");
    32                 // 到達匯合點
    33                 cb.await();
    34             } catch (Exception e) {
    35                 // 異常處理
    36             }
    37         }
    38     }
    39 }
    40 
    posted on 2015-02-27 11:50 polang 閱讀(243) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 57pao一国产成永久免费| 国产亚洲免费的视频看| 免费高清小黄站在线观看| 亚洲一级毛片免费观看| 成年女人毛片免费播放人| 亚洲欧美日韩自偷自拍| 日本a级片免费看| 老司机午夜在线视频免费观| 亚洲福利精品电影在线观看| 亚洲精品在线免费观看| 1区1区3区4区产品亚洲| 91人成网站色www免费下载| 日本久久久免费高清| 亚洲AV综合永久无码精品天堂 | 最近中文字幕mv免费高清在线| 亚洲AV美女一区二区三区| 无码AV片在线观看免费| 亚洲午夜电影在线观看高清| 国产啪精品视频网免费| 精品国产_亚洲人成在线| 无码国产精品一区二区免费vr| 无码欧精品亚洲日韩一区| 台湾一级毛片永久免费| 亚洲国产aⅴ成人精品无吗| 全亚洲最新黄色特级网站| 你懂的免费在线观看| 亚洲第一区精品观看| 免费国产99久久久香蕉| 亚洲国产综合精品中文第一| 四虎永久免费影院| 免费国产成人午夜在线观看| 亚洲一区二区三区免费视频| 国产一区二区免费在线| 日本不卡免费新一区二区三区| 最新国产成人亚洲精品影院| 亚洲第一区在线观看| 1000部禁片黄的免费看| 国产精品亚洲一区二区三区在线观看| 国产亚洲精品资源在线26u| 性做久久久久久久免费看| 一本一道dvd在线观看免费视频|