CountDownLatchDemo

package com.smart.thread;

import java.util.Date;
import java.util.concurrent.CountDownLatch;

/**

  • Java多线程编程中经常会碰到这样一种场景——某个线程需要等待一个或多个线程操作结束(或达到某种状态)才开始执行。

  • 比如开发一个并发测试工具时,主线程需要等到所有测试线程均执行完成再开始统计总共耗费的时间,

  • 此时可以通过CountDownLatch轻松实现。

  • Created by jinxiaoyu on 17/4/11.
    */
    public class CountDownLatchDemo {
    public static void main(String[] args) throws InterruptedException {
    int totalThread = 3;
    long start = System.currentTimeMillis();
    final CountDownLatch countDown = new CountDownLatch(totalThread);
    for(int i = 0; i < totalThread; i++) {
    final String threadName = "Thread " + i;
    new Thread() {
    @Override
    public void run() {

                 System.out.println(String.format("%s\t%s %s", new Date(), threadName, "started"));
                 try {
                     Thread.sleep(1000);
                 } catch (Exception ex) {
                     ex.printStackTrace();
                 }
                 countDown.countDown();
                 System.out.println(String.format("%s\t%s %s", new Date(), threadName, "ended"));
             }
         }.start();
     }
     countDown.await();
     long stop = System.currentTimeMillis();
     System.out.println(String.format("Total time : %sms", (stop - start)));
    

    }
    }

Tue Apr 11 21:29:07 CST 2017 Thread 2 started
Tue Apr 11 21:29:07 CST 2017 Thread 0 started
Tue Apr 11 21:29:07 CST 2017 Thread 1 started
Tue Apr 11 21:29:08 CST 2017 Thread 2 ended
Tue Apr 11 21:29:08 CST 2017 Thread 1 ended
Tue Apr 11 21:29:08 CST 2017 Thread 0 ended
Total time : 1049ms

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 正常情况下,每个子线程完成各自的任务就可以结束了。不过有的时候,我们希望多个线程协同工作来完成某个任务,这时就涉及...
    野梦M阅读 505评论 0 2
  • package com.smart.thread; import java.util.Date;import ja...
    tiancijiaren阅读 568评论 0 0
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,785评论 18 399
  • 永生是极需要勇气的吧… 看着生活过尽千帆,看着亲近的人相继离去…如若存在轮回,还要一遍又一遍地相遇,别离…独自在爱...
    豆沙杯子喵小姐阅读 245评论 0 0
  • 译/李凌 Angel - 手嶌葵 Spend all your time waiting 用所有的时间去等待 Fo...
    花间精凌阅读 190评论 0 3