版权声明:fromZjy QQ1045152332 https://blog.csdn.net/qq_36762677/article/details/86550724
描述
- 有一个任务需要等待其他几个人物执行完毕后才能执行
import java.util.concurrent.CountDownLatch;
public class CountDownLatchDemo {
public static void main(String[] args){
final int num = 2;
//两个任务后
CountDownLatch countDownLatch = new CountDownLatch(num);
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(1000);
System.out.println("任务1执行完毕");
countDownLatch.countDown();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(2000);
System.out.println("任务2执行完毕");
countDownLatch.countDown();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
System.out.println("主线程正在等待其他"+num+"个线程执行完成");
try {
//同步点
countDownLatch.await();
System.out.println("主线程开始执行");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
结果
主线程正在等待其他2个线程执行完成
任务1执行完毕
任务2执行完毕
主线程开始执行