1. 介绍
通常用来控制线程的等待,可以理解为一个倒计数工具。它可以让一个线程等待直到倒计数结束,再开始执行。计数只能减,不能增。
2. 构造函数
public CountDownLatch(int count);
接收一个整数作为参数,即当前计数器的计数个数
3. 案例
主线程在CountDownLatch上等待,所有任务完成后,主线程方能继续执行。
public class Test01 {
@Test
public void test01() throws Exception{
CountDownLatch countDownLatch = new CountDownLatch(10);
ExecutorService es = Executors.newFixedThreadPool(2);
for (int i = 0; i < 10; i++) {
es.execute(()->{
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}finally {
countDownLatch.countDown();
System.out.println(countDownLatch.getCount());
}
});
}
countDownLatch.await();
System.out.println("end");
}
}
输出:
9
8
7
6
5
4
3
2
1
0
end
实时内容请关注微信公众号,公众号与博客同时更新:程序员星星