<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

    主站蜘蛛池模板: 国产成人高清精品免费鸭子| 无码国产精品一区二区免费式影视| 免费看a级黄色片| 亚洲一区在线视频观看| 3344免费播放观看视频| 亚洲视频中文字幕在线| 97碰公开在线观看免费视频| 亚洲麻豆精品果冻传媒| av免费不卡国产观看| 亚洲中文字幕无码mv| 国产无遮挡又黄又爽免费视频| 色www免费视频| 亚洲第一网站男人都懂| 丝瓜app免费下载网址进入ios| 亚洲精品无码成人片久久| 一个人免费日韩不卡视频| 亚洲人成在久久综合网站| 国内一级一级毛片a免费| 免费国产黄网站在线观看动图| 亚洲精品国产电影| 久久成人无码国产免费播放| 亚洲欧洲日产国码二区首页 | 在线观看亚洲AV日韩A∨| 国产男女猛烈无遮挡免费视频网站| 美女被免费视频网站| 亚洲毛片αv无线播放一区| 久久久久久精品免费看SSS | 亚洲一区二区三区91| 国产99视频精品免费视频7| 中文字幕在线视频免费观看| 精品日韩亚洲AV无码| 日韩免费毛片视频| 中文字幕无码免费久久9一区9| 亚洲免费视频播放| 亚洲国产精品成人久久蜜臀| 国产成人精品无码免费看| 亚洲欧美日韩自偷自拍| 久久久无码精品亚洲日韩软件| 国产高清不卡免费在线| 精品免费AV一区二区三区| 亚洲邪恶天堂影院在线观看|