CountDownLatch :
是一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待
public static void main(String[] args) {
CountDownLatch cdl = new CountDownLatch(2);
new Thread(() -> {
try {
System.out.println("开始等待其他线程运行结束");
// 等待 cdl中的数量到0再执行
cdl.await();
System.out.println("业务结束后运行");
} catch (InterruptedException e) {
e.printStackTrace();
}
}).start();
new Thread(()->{
System.out.println(Thread.currentThread().getName() + " 运行结束");
//将 cdl 中的数量 -1
cdl.countDown();
} , "业务-01").start();
new Thread(()->{
System.out.println(Thread.currentThread().getName() + " 运行结束");
//将 cdl 中的数量 -1
cdl.countDown();
} , "业务-02").start();
}
运行结果:
开始等待其他线程运行结束
业务-02 运行结束
业务-01 运行结束
业务结束后运行