CountDownLatch

countDownLatch这个类使一个线程等待其他线程各自执行完毕后再执行。

public class CountDownLatchDemo {
    public static void main(String[] args) throws InterruptedException{


        /**
         *
         *  countDownLatch这个类使主线程等待,别的线程执行完后,才执行System.out.println("人 都出去了,关门");
         *
         *  是通过一个计数器来实现的,计数器的初始值是线程的数量。每当一个线程执行完毕后,计数器的值就-1,
         *  当计数器的值为0时,表示所有线程都执行完毕,然后在闭锁上等待的线程就可以恢复工作了。
         *
         */
        CountDownLatch countDownLatch = new CountDownLatch(6);

        for (int i = 0; i < 6; i++) {
            new Thread(()->{
                System.out.println(Thread.currentThread().getName()+"go out");
                countDownLatch.countDown();

            },String.valueOf(i)).start();
        }


        countDownLatch.await();
        System.out.println("人 都出去了,关门");


    }
}

  

上一篇:java多线程-countDownLatch介绍


下一篇:CountDownLatch和CyclicBarrier你使用过吗?