多线程之CountDownLatch-等待一个或多个线程执行完毕

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));
}
}

结果

posted @   我自逍遥  阅读(119)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示