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

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

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

    隨筆 - 18, 文章 - 0, 評論 - 8, 引用 - 0
    數(shù)據(jù)加載中……

    CountDownLatch 簡單舉例

    一句話解釋:主線程阻塞,其他線程完成后,主線程被喚醒后繼續(xù)執(zhí)行

     1 import java.util.Random;
     2 import java.util.concurrent.CountDownLatch;
     3 
     4 import org.slf4j.Logger;
     5 import org.slf4j.LoggerFactory;
     6 
     7 public class CountDownLatchLearn {
     8     
     9     private Logger log = LoggerFactory.getLogger(CountDownLatchLearn.class);
    10     private CountDownLatch countDownLatch;
    11     
    12     public CountDownLatchLearn() {
    13         countDownLatch = new CountDownLatch(50);
    14     }
    15     
    16     public void countDown() {
    17         Long count = countDownLatch.getCount();
    18         log.debug("countDownLatch count is:" + count.toString());
    19         
    20         for (int i = 0; i < count; i++) {
    21             Work work = new Work(String.valueOf(i), countDownLatch);
    22             work.start();
    23         }
    24         try {
    25             countDownLatch.await();
    26         } catch (InterruptedException e) {
    27             e.printStackTrace();
    28         }
    29         log.debug("work finish!!!");
    30     }
    31     
    32     private class Work extends Thread {
    33         
    34         private String name;
    35         private CountDownLatch countDownLatch;
    36         
    37         public Work(String name, CountDownLatch countDownLatch) {
    38             this.name = name;
    39             this.countDownLatch = countDownLatch;
    40         }
    41         
    42         @Override
    43         public void run() {
    44             Random r = new Random();
    45             int sleep = r.nextInt(2000);
    46             try {
    47                 log.debug("thread sleep: "+ sleep);
    48                 Thread.sleep(sleep);
    49             } catch (InterruptedException e) {
    50                 e.printStackTrace();
    51             }
    52             log.debug("thread: " + name + ": do work");
    53             countDownLatch.countDown();
    54         }
    55     }
    56 
    57     public static void main(String[] args) {
    58         System.out.println("main start!!!");
    59         
    60         CountDownLatchLearn countDownLatchLearn = new CountDownLatchLearn();
    61         countDownLatchLearn.countDown();
    62         
    63         System.out.println("main end!!!");
    64     }
    65 
    66 }

    posted on 2017-07-13 11:18 丑男 閱讀(308) 評論(0)  編輯  收藏 所屬分類: Java

    主站蜘蛛池模板: 国产免费人成视频在线观看 | 亚洲中文字幕久久精品蜜桃| 久久久久久久岛国免费播放 | 在线看片v免费观看视频777| 亚洲校园春色小说| 6080午夜一级毛片免费看 | 国产成人精品免费久久久久 | 亚洲永久在线观看| 天天摸夜夜摸成人免费视频| 亚洲国产欧洲综合997久久| 日韩精品视频免费观看| 美美女高清毛片视频黄的一免费 | 亚洲va中文字幕无码久久| 久草免费福利资源站| 亚洲天堂一区二区三区| 91在线视频免费91| 亚洲欧洲日产国码久在线| 亚洲不卡无码av中文字幕| 中文字幕av免费专区| 337p日本欧洲亚洲大胆艺术| A在线观看免费网站大全| 亚洲hairy多毛pics大全| 亚洲日韩国产成网在线观看| 永久免费不卡在线观看黄网站| 67pao强力打造67194在线午夜亚洲 | 亚洲色成人网一二三区| 免费人成视频在线| 麻豆91免费视频| 亚洲国产精品久久久天堂| 波多野结衣免费在线| 粉色视频成年免费人15次| 国产偷v国产偷v亚洲高清| 黄色网址免费观看| 日韩免费码中文在线观看| 亚洲国产高清人在线| 色吊丝最新永久免费观看网站| 中文字幕久无码免费久久| 亚洲综合色区中文字幕| 久久99亚洲综合精品首页| 日韩欧毛片免费视频| 一级毛片成人免费看a|