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

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

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

    愛(ài)睡覺(jué)的程序員

      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      5 隨筆 :: 0 文章 :: 0 評(píng)論 :: 0 Trackbacks
         CyclicBarrier,讓多線程齊步走。讓多個(gè)線程到達(dá)某一個(gè)點(diǎn)之后,再同時(shí)往下運(yùn)行。
        思考這樣一個(gè)案例:兩個(gè)工人從兩端挖掘隧道,各自獨(dú)立奮戰(zhàn),中間不溝通,如果兩人在匯合點(diǎn)處碰頭了,則表明隧道已經(jīng)挖通。這描繪的也是在多線程編程中,兩個(gè)線程獨(dú)立運(yùn)行,在沒(méi)有線程間通信的情況下,如何解決兩個(gè)線程匯集在同一原點(diǎn)的問(wèn)題。Java提供了CyclicBarrier(關(guān)卡,也有翻譯為柵欄)工具類來(lái)實(shí)現(xiàn)。
        代碼如下:
      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         // 設(shè)置匯集數(shù)量,以及匯集完成后的任務(wù)
     8         CyclicBarrier cb = new CyclicBarrier(2, new Runnable() {
     9             public void run() {
    10                 System.out.println("隧道已經(jīng)打通!");
    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         // 關(guān)卡
    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() + "-到達(dá)匯合點(diǎn)");
    32                 // 到達(dá)匯合點(diǎn)
    33                 cb.await();
    34             } catch (Exception e) {
    35                 // 異常處理
    36             }
    37         }
    38     }
    39 }
    40 
    posted on 2015-02-27 11:50 polang 閱讀(241) 評(píng)論(0)  編輯  收藏

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲啪AV永久无码精品放毛片| 亚洲精品动漫在线| 五月婷婷免费视频| 免费人成网站在线播放| 极品色天使在线婷婷天堂亚洲| 成人免费无码大片A毛片抽搐色欲 成人免费无码大片a毛片 | 91视频免费观看| 亚洲精品亚洲人成在线观看| 91在线视频免费观看| 亚洲av无码片在线播放| 99免费观看视频| 亚洲免费在线观看视频| 青春禁区视频在线观看直播免费 | 国产免费黄色无码视频| 久久乐国产精品亚洲综合| 久久免费视频一区| 亚洲2022国产成人精品无码区| 久久午夜羞羞影院免费观看| 亚洲av无码专区在线| 在线观看91精品国产不卡免费| 国产成人综合亚洲一区| 精品国产香蕉伊思人在线在线亚洲一区二区 | 91亚洲国产成人久久精品网站| 成人AV免费网址在线观看| 亚洲精品人成网线在线播放va| 亚洲国产成人久久综合野外| 国产羞羞的视频在线观看免费| 亚洲国产美女在线观看| 四虎永久在线精品视频免费观看| 99精品免费视频| 亚洲一级毛片在线观| 亚洲AV无码一区二三区| 久久香蕉国产线看免费| 自拍日韩亚洲一区在线| 亚洲片一区二区三区| 亚洲免费福利视频| 国产成人精品久久亚洲高清不卡| 亚洲午夜无码久久久久| 黄色片在线免费观看| 91精品成人免费国产| 亚洲日韩一中文字暮|