zoukankan      html  css  js  c++  java
  • 并发编程系列【CountDownLatch】

    作用:直译:倒数的门闩,倒数指定的次数,await才继续往下执行。

    import java.util.Random;
    import java.util.concurrent.CountDownLatch;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    
    public class CountDownLatchDemo implements Runnable{
        //创建CountDownLatch,并指定倒计数值为10
        static final CountDownLatch latch = new CountDownLatch(10);
        static final CountDownLatchDemo demo = new CountDownLatchDemo();
    
        @Override
        public void run() {
            // 模拟检查任务
            try {
                Thread.sleep(new Random().nextInt(10) * 1000);
                System.out.println("check complete");
            } catch (InterruptedException e) {
                e.printStackTrace();
            } finally {
                //计数减一
                //放在finally避免任务执行过程出现异常,导致countDown()不能被执行
                latch.countDown();//让计数键1
            }
        }
    
    
        public static void main(String[] args) throws InterruptedException {
            ExecutorService exec = Executors.newFixedThreadPool(10);
            for (int i=0; i<10; i++){
                exec.execute(demo);
            }
    
            // 等待检查
            latch.await();//该方法为阻塞方法,在countDown结束之前,当前线程会阻塞在此等待在countDown结束
    
            // 发射火箭
            System.out.println("Fire!");
            // 关闭线程池
            exec.shutdown();
        }
    }
  • 相关阅读:
    大臣的旅费 Apare_xzc 求树的直径 蓝桥杯
    连号区间数 Apare_xzc
    js盒模型
    js仿真进度条
    JS卷动事件
    json对象读取
    button属性及兼容性处理
    js图片跟随效果
    商城倒计时JS怎么做
    计算某天距离现在日期的差值
  • 原文地址:https://www.cnblogs.com/hujunwei/p/15659604.html
Copyright © 2011-2022 走看看