zoukankan      html  css  js  c++  java
  • CountDownLatch---减法计数器

      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("关门了");
    
        }
  • 相关阅读:
    Python基础之基本数据类型
    Python基础之变量
    mysql数据库
    进程与线程
    并发编程
    网络编程
    内置函数(魔法方法)
    组合,封装,访问限制机制,property装饰器
    面向对象之继承
    Web开发中最致命的8个小错误
  • 原文地址:https://www.cnblogs.com/bobobjh/p/14472732.html
Copyright © 2011-2022 走看看