美文网首页
主要并发工具类-CountdownLaunch的使用

主要并发工具类-CountdownLaunch的使用

作者: 飞奔吧牛牛 | 来源:发表于2020-02-10 03:50 被阅读0次

从字面理解 CountDownLatch,意思是倒数门闩。它的作用是多个线程做汇聚。主线程开启了 A、B、C 三个线程做不同的事情,但是主线程需要等待 A、B、C 三个线程全部完成后才能继续后面的步骤。此时就需要 CountDownLatch 出马了。CountDownLatch 会阻塞主线程,直到计数走到 0,门闩才会打开,主线程继续执行。

private static CountDownLatch countDownLatch = new CountDownLatch(3);

    public static void main(String[] args) throws InterruptedException {
        System.out.println("主线程开始工作");
        new Thread(() -> {
            try {
                Thread.sleep(100);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("线程1完成任务");
            countDownLatch.countDown();
        }).start();
        new Thread(() -> {
            try {
                Thread.sleep(50);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("线程2完成任务");
            countDownLatch.countDown();
        }).start();
        new Thread(() -> {
            try {
                Thread.sleep(150);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("线程3完成任务");
            countDownLatch.countDown();
        }).start();
        countDownLatch.await();
        System.out.println("全部完成任务,主线程继续执行。。。");

    }

结果:

主线程开始工作
线程2完成任务
线程1完成任务
线程3完成任务
全部完成任务,主线程继续执行。。。

相关文章

网友评论

      本文标题:主要并发工具类-CountdownLaunch的使用

      本文链接:https://www.haomeiwen.com/subject/bhboxhtx.html