zoukankan      html  css  js  c++  java
  • CountDownLatch 多线程,等待所有线程结束

    CountDownLatch,一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。

    主要方法
    public CountDownLatch(int count);
    构造方法参数指定了计数的次数
    public void countDown();
    当前线程调用此方法,则计数减一
    public void await() throws InterruptedException
    调用此方法会一直阻塞当前线程,直到计时器的值为0

    public class CountDownLatchDemo {
        final static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    
        public static void main(String[] args) throws InterruptedException {
            CountDownLatch latch = new CountDownLatch(2);// 两个工人的协作
            Worker worker1 = new Worker("zhang san", 5000, latch);
            Worker worker2 = new Worker("li si", 8000, latch);
            worker1.start();//
            worker2.start();//
            latch.await();// 等待所有工人完成工作
            System.out.println("all work done at " + sdf.format(new Date()));
        }
    
        static class Worker extends Thread {
            String workerName;
            int workTime;
            CountDownLatch latch;
    
            public Worker(String workerName, int workTime, CountDownLatch latch) {
                this.workerName = workerName;
                this.workTime = workTime;
                this.latch = latch;
            }
    
            public void run() {
                System.out.println("Worker " + workerName + " do work begin at " + sdf.format(new Date()));
                try {
                    Thread.sleep(workTime);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                } finally {
                    latch.countDown();
                }
                System.out.println("Worker " + workerName + " do work complete at " + sdf.format(new Date()));
    
            }
    
        }
    
    }
  • 相关阅读:
    python上下文管理器
    python文件处理
    python爬虫之路(一)-----requests库详解
    深入理解http(四)----http补充
    深入理解http(三)----http进阶hhtps
    深入理解http(二)------http的缓存机制及原理
    深入理解http(一)
    XML学习之路(二)
    Nginx 编译安装-1.61.1
    LVS-DR 模式
  • 原文地址:https://www.cnblogs.com/feiyun126/p/7699152.html
Copyright © 2011-2022 走看看