首页 > 其他 > 详细

CountDownLatch---减法计数器

时间:2021-03-03 14:45:03      阅读:22      评论:0      收藏:0      [点我收藏+]

  CountDownLatch是一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。它本质上是AQS的上层实现的共享锁。如果同时开启多个线程执行任务,必须等到所有的线程都执行完再执行主线程,这个时候就需要用到CountDwonLatch来控制了。先上代码,更好理解:

 示例

    public static void main(String[] args) {
        //减法计数器,用来判断全部线程是否全部执行完成。设置10表示等待10个线程全部执行完成。
        CountDownLatch count = new CountDownLatch(10);
        for (int i=1;i<=10;i++){
            new Thread(()->{
                System.out.println(Thread.currentThread().getName() + "出去了");
                count.countDown();// -1
            },String.valueOf(i)).start();
        }

        //主线程等待子线程全部执行完毕才继续执行
        try {
            count.await();//等待计数器归零(等待计数器计数完成)
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("关门了");

    }

CountDownLatch---减法计数器

原文:https://www.cnblogs.com/bobobjh/p/14472732.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!