Java 并发包之CountDownLatch
前言
CountDownLatch适用场景
- 一个主任务由多个子任务组成
- 主任务需要等待子任务完成才能继续执行
在正常情况下,主线程是不会等待子线程的
class CountDownLatchT2 {
public static void main(String[] args) throws InterruptedException {
Runnable runnable = () -> {
try {
Thread.sleep(2000);
System.out.println("hello world");
} catch (InterruptedException e) {
e.printStackTrace();
}
};
IntStream.range(0, 4).forEach(i -> new Thread(runnable).start());
System.out.println("子线程启动完毕");
System.out.println("主线程执行完毕");
}
}
复制代码
![image.png](https://i-blog.csdnimg.cn/blog_migrate/6983f77b2a1e5497d48271d8675539f2.png)
使用CountDownLatch
public class CountDownLatchT {
public static void