- 目的:并行执行不同的任务部分.
public class CountDownLatchDemo1 {
public static void main(String[] args) throws InterruptedException {
CountDownLatch countDown = new CountDownLatch(1);
new Thread(() -> {
System.out.println("第一阶段的行为 -- 开始");
try {
Thread.sleep(2_000);
countDown.await();
System.out.println("第一阶段的行为 -- 结束");
} catch (InterruptedException e) {
e.printStackTrace();
}
}).start();
new Thread(() -> {
System.out.println("为第二阶段的行为, 准备数据 -- 开始");
try {
Thread.sleep(2_000);
countDown.countDown();
System.out.println("为第二阶段的行为, 准备数据 -- 结束");
} catch (InterruptedException e) {
e.printStackTrace();
}
}).start();
new Thread(() -> {
System.out.println("第二阶段的行为 -- 开始");
try {
countDown.await();
System.out.println("第二阶段的行为 -- 结束");
} catch (InterruptedException e) {
e.printStackTrace();
}
}).start();
Thread.currentThread().join();
System.out.println("任务完成");
}
}