CountDownLatch使用
-
CountDownLatch是一个减法计算器,可以通过计数来等待线程执行完成
public class CountDownLatchTest { public static void main(String[] args) throws InterruptedException { //初始化一个计数器 CountDownLatch countDownLatch = new CountDownLatch(5); for (int i = 1; i <= 5; i++) { new Thread(()->{ System.out.println("线程" + Thread.currentThread().getName() + "执行。"); //自减1 一般在线程将要结束时调用 countDownLatch.countDown(); },String.valueOf(i)).start(); } //当前线程会在这里等待 //等待自减为0 相等于所有线程都调用了countDownLatch.countDown()语句 countDownLatch.await(); System.out.println("所有线程执行完成...."); } }
“所有线程执行完成…” 这个信息一定是最后输出的。
-
CountDownLatch使用步骤
-
初始化一个计算器
CountDownLatch countDownLatch = new CountDownLatch(5);
-
自减1
countDownLatch.countDown();
-
等待自减为0
countDownLatch.await();
-