A.什么是CountDownLatch
CountDownLatch主要有两个方法,当一个或多个线程调用await()方法时,调用线程会被阻塞。其他线程调用countDown()方法会将计数器减1,当计数器的值变为0时,因调用await()方法被阻塞的线程才会被唤醒,继续执行
B.为什么要引入CountDownLatch
由于并发有异步性,不能保证特定的线程执行顺序,现在就是为了保证特定的执行顺序
C.CountDownLatch应用在什么场景?
应用程序的主线程希望在负责启动框架服务的线程已经启动所有的框架服务之后再执行
D.利用CountDownLatch实现让主线程最后启动
public static void main(String[] args) throws InterruptedException {
CountDownLatch count=new CountDownLatch(3);
for(int i=0;i<3;i++)
{
new Thread(()->{
System.out.println(Thread.currentThread().getName()+"已经完成");
count.countDown();
},String.valueOf(i)).start();
}
count.await();
System.out.println("主线程完成操作");
}