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

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

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

    隨筆 - 18, 文章 - 0, 評(píng)論 - 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) 評(píng)論(0)  編輯  收藏 所屬分類: Java

    主站蜘蛛池模板: 亚洲AV无码国产精品麻豆天美 | 亚洲人成色777777老人头| 黄网址在线永久免费观看 | 午夜亚洲av永久无码精品| 精品一区二区三区免费| 亚洲一区精品视频在线| 亚洲?V乱码久久精品蜜桃| 91久久精品国产免费一区| 国产亚洲精品影视在线| 国产亚洲精aa成人网站| 免费A级毛片无码A∨免费| 羞羞漫画页面免费入口欢迎你 | 亚洲爆乳无码精品AAA片蜜桃| 亚洲中文字幕久久精品无码喷水| 精品熟女少妇av免费久久| 亚洲av综合日韩| 亚洲国产综合精品中文第一区| 四虎影院免费在线播放| 可以免费观看的国产视频| 亚洲国产AV一区二区三区四区| 久久亚洲AV午夜福利精品一区| 国产精品免费小视频| 99视频在线免费| 一区二区三区在线免费 | 88av免费观看入口在线| 猫咪免费人成网站在线观看入口| 噜噜噜亚洲色成人网站∨| 久久精品亚洲男人的天堂| 成人看的午夜免费毛片| 99免费视频观看| 99视频在线观看免费| 噜噜综合亚洲AV中文无码| 久久亚洲精品无码VA大香大香| 国产亚洲精品拍拍拍拍拍| 日本黄色免费观看| 99re6热视频精品免费观看| 99视频在线观看免费| 一级毛片试看60分钟免费播放| 亚洲av最新在线观看网址| 亚洲国产日韩在线人成下载| 久久精品亚洲中文字幕无码网站|