<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

    主站蜘蛛池模板: 亚洲成熟丰满熟妇高潮XXXXX| 国产成人亚洲综合a∨| 美女扒开屁股让男人桶爽免费| 一级毛片视频免费观看| 91免费人成网站在线观看18| 伊人久久亚洲综合影院| 久久夜色精品国产噜噜噜亚洲AV | 亚洲国产一区二区a毛片| 亚洲欧美国产精品专区久久| a视频在线观看免费| 在线观看免费a∨网站| 亚洲精品高清无码视频| 亚洲sm另类一区二区三区| 久久成人a毛片免费观看网站| 国产高清在线精品免费软件| 亚洲精品高清国产一久久| 日韩免费在线中文字幕| 美女视频黄的全免费视频网站| 亚洲桃色AV无码| 亚洲av无码成人精品区一本二本 | www成人免费视频| 国产成人免费高清激情视频| 亚洲国产美女精品久久久久∴| 色婷婷六月亚洲综合香蕉| 久久免费看黄a级毛片| 亚洲真人无码永久在线| 亚洲国产精品无码久久98| 久久免费的精品国产V∧| 亚洲综合色成在线播放| 亚洲七久久之综合七久久| 久久精品一本到99热免费| 国产亚洲午夜高清国产拍精品| 亚洲欧美日韩国产精品一区| 色片在线免费观看| 国产亚洲一区二区三区在线观看 | 亚洲第一视频在线观看免费| 好男人看视频免费2019中文| 亚洲精品美女久久久久| 中文字幕免费观看视频| 亚洲国产黄在线观看| 亚洲欧美乱色情图片|