package com.example.test.async;
import java.util.concurrent.CountDownLatch;
public class CountDownLatchTest {
private static final int COUNT = 5;
private static final CountDownLatch COUNT_DOWN_LATCH = new CountDownLatch(COUNT);
public static void main(String[] args) {
long start = System.currentTimeMillis();
for (int i = 0; i < COUNT; i ++){
int finalI = i;
new Thread(()->{
try {
System.out.println("线程-" + finalI + "-开始执行");
Thread.sleep(1000);
System.out.println("线程-" + finalI + "-执行完毕");
} catch (InterruptedException e) {
throw new RuntimeException(e);
}finally {
COUNT_DOWN_LATCH.countDown();
}
}).start();
}
try {
// 阻塞,等待所有线程执行完毕
COUNT_DOWN_LATCH.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("所有线程已经执行完毕,总耗时(ms):" + (System.currentTimeMillis() - start));
}
}
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://www.cnblogs.com/onlyrun/p/16540836.html
内容来源于网络,如有侵权,请联系作者删除!