解释:CountDownLatch.countDown()是用来线程计数器-1的,也就是新增线程运行完之后,都调用此方法将计数器变成0,最后调用await()方法,主线程就会被唤醒,继续执行其它代码
应用场景:启动一个服务时,主线程需要等待多个组件加载完毕,之后再继续执行。
用法:
1-先初始化会运行的线程数n
private static CountDownLatch countDown = new CountDownLatch(n);
2-然后每个线程开启并运行完成之后计数器都减去1,可以在finally里面执行
countDown.countDown();
3-主线程唤醒
end.await();