GUC-5 CountDownLatch闭锁

Posted surge

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GUC-5 CountDownLatch闭锁相关的知识,希望对你有一定的参考价值。

 

/*
 * CountDownLatch :闭锁,在完成某些运算是,只有其他所有线程的运算全部完成,当前运算才继续执行
 */
public class TestCountDownLatch {

    public static void main(String[] args) {
        final CountDownLatch latch = new CountDownLatch(50);
        LatchDemo ld = new LatchDemo(latch);

        long start = System.currentTimeMillis();

        for (int i = 0; i < 50; i++) {
            new Thread(ld).start();
        }

        try {
            latch.await();
        } catch (InterruptedException e) {
        }

        long end = System.currentTimeMillis();

        System.out.println("耗费时间为:" + (end - start));
    }

}

class LatchDemo implements Runnable {

    private CountDownLatch latch;

    public LatchDemo(CountDownLatch latch) {
        this.latch = latch;
    }

    @Override
    public void run() {

        try {
            for (int i = 0; i < 50000; i++) {
                if (i % 2 == 0) {
                    System.out.println(i);
                }
            }
        } finally {
            latch.countDown();
        }

    }

}

 

以上是关于GUC-5 CountDownLatch闭锁的主要内容,如果未能解决你的问题,请参考以下文章

4JUC--CountDownLatch闭锁

并发编程-AQS同步组件之CountDownLatch 闭锁

Juc21_强大的三个工具类CountDownLatch 闭锁 CyclicBarrier Semaphore

JUC--闭锁 CountDownLatch

java多线程 -- CountDownLatch 闭锁

CountDownLatch(闭锁)Semaphore(信号量)CyclicBarrier