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

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

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

    MDA/MDD/TDD/DDD/DDDDDDD
    posts - 536, comments - 111, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    CountDownLatch和CyclicBarrier的區別

    Posted on 2015-03-02 06:28 leekiang 閱讀(483) 評論(0)  編輯  收藏 所屬分類: java
    CountDownLatch : 一個線程(或者多個), 等待另外N個線程完成某個事情之后才能執行。? ?
    CyclicBarrier? : N個線程相互等待,任何一個線程完成之前,所有的線程都必須等待。
    這樣應該就清楚一點了,對于CountDownLatch來說,重點是那個“一個線程”, 是它在等待, 而另外那N的線程在把“某個事情”做完之后可以繼續等待,可以終止。而對于CyclicBarrier來說,重點是那N個線程,他們之間任何一個沒有完成,所有的線程都必須等待。

    CyclicBarrier 在釋放等待線程后可以重用,所以稱它為循環的 barrier。它 還支持一個可選的 Runnable 命令,在一組線程中的最后一個線程到達之后(但在釋放所有線程之前),該命令只在每個屏障點運行一次。若在繼續所有參與線程之前更新共享狀態,此屏障操作很有用。



    public class Test {
    ??? public static void main(String[] args) {
    ??????? new Test().test1();
    ??? }
    ?? ?
    ??? public void test1() {
    ??????? CyclicBarrier cyclicBarrier = new CyclicBarrier(4, new Runnable() {
    ??????????? @Override
    ??????????? public void run() {
    ??????????????? System.out.println("所有玩家進入第二關!");
    ??????????? }
    ??????? });

    ??????? for (int i = 0; i < 4; i++) {
    ??????????? new Thread(new Player(i, cyclicBarrier)).start();
    ??????? }
    ??? }

    ??? class Player implements Runnable {
    ??????? private CyclicBarrier cyclicBarrier;
    ??????? private int id;

    ??????? public Player(int id, CyclicBarrier cyclicBarrier) {
    ??????????? this.cyclicBarrier = cyclicBarrier;
    ??????????? this.id = id;
    ??????? }

    ??????? @Override
    ??????? public void run() {
    ??????????? try {
    ??????????????? System.out.println("玩家" + id + "正在玩第一關...");
    ??????????????? cyclicBarrier.await();
    ??????????????? System.out.println("玩家" + id + "進入第二關...");
    ??????????? } catch (InterruptedException e) {
    ??????????????? e.printStackTrace();
    ??????????? } catch (BrokenBarrierException e) {
    ??????????????? e.printStackTrace();
    ??????????? }
    ??????? }
    ??? }
    }
    主站蜘蛛池模板: 亚洲爆乳精品无码一区二区三区 | 亚洲毛片免费观看| 毛片基地免费视频a| 日本免费精品一区二区三区| 亚洲av无码国产精品色午夜字幕 | 伊人久久大香线蕉亚洲五月天| 84pao国产成视频免费播放| 好爽…又高潮了毛片免费看| 两个人日本WWW免费版| 亚洲人成小说网站色| 亚洲精品美女久久久久99| 四虎成人免费影院网址| 日本一区午夜艳熟免费| 亚洲av无码成人精品区一本二本| 国产A在亚洲线播放| 在线视频免费国产成人| 中文字幕免费在线| rh男男车车的车车免费网站| 亚洲影视自拍揄拍愉拍| 亚洲AV无码码潮喷在线观看| 国产不卡免费视频| 1024免费福利永久观看网站| a毛片免费观看完整| 日本亚洲中午字幕乱码| 亚洲国产精品yw在线观看| 亚洲免费人成在线视频观看| 曰皮全部过程视频免费国产30分钟 | 国产a v无码专区亚洲av| 最近高清中文字幕无吗免费看| 九九99热免费最新版| 国产偷国产偷亚洲清高APP| 亚洲理论片在线中文字幕| 自拍偷自拍亚洲精品被多人伦好爽 | 热99RE久久精品这里都是精品免费| 亚洲色精品三区二区一区| 亚洲网站在线播放| 亚洲精品人成无码中文毛片| 久久久久久99av无码免费网站 | 理论秋霞在线看免费| 亚洲国产一成人久久精品| 我想看一级毛片免费的|