zoukankan      html  css  js  c++  java
  • 利用同步辅助类CountDownLatch计算多线程的运行时间

    一、CountDownLatch

      jdk提供的一个同步辅助类,在完成一组在在其他线程中执行的操作前,允许一个或者多个其他的线程等待,通过调用 await() 方法阻塞,直到由于 countDown() 方法的调用而导致当前计数达到零,之后所有等待线程被释放。

    二、计算多个线程执行时间

    package com.example.demo.juc;
    
    import java.util.concurrent.CountDownLatch;
    
    /**
     * @author DUCHONG
     * @since 2019-01-17 14:18
     **/
    public class LatchTest {
    
        public static void main(String[] args) {
    
            Long startTime=System.currentTimeMillis();
            CountDownLatch countDownLatch=new CountDownLatch(5);
            LatchThread latchThread=new LatchThread(countDownLatch);
    
            for(int j=1;j<=5;j++){
                new Thread(latchThread,"thread"+j).start();
            }
    
            try {
                countDownLatch.await();
            }
            catch (InterruptedException e) {
                e.printStackTrace();
            }
            Long endTime=System.currentTimeMillis();
    
            System.out.println("over 耗时:"+(endTime-startTime));
        }
    
    }
    
    class LatchThread implements  Runnable{
    
        private CountDownLatch latch;
        public LatchThread(CountDownLatch l) {
            latch=l;
        }
    
        @Override
        public void run() {
            synchronized (this) {
                try {
                    for (int i = 0; i < 100; i++) {
                        if (i % 2 == 0) {
                            System.out.println(Thread.currentThread().getName() + "----" + i);
                        }
                    }
                }
                finally {
                    latch.countDown();
                }
            }
        }
    }
    
  • 相关阅读:
    Flask: 用户认证
    Flask: Web表单
    Flask QuickBoot
    Flask: 构建API
    4 Gbase 8a 集群管理工具
    3 GBase 8a客户端
    2 GBase 8a 数据库版本升级
    1 GBase 8a MPP Cluster V95 安装和卸载
    0 GBase 8a MPP Cluster 数据库核心技术
    Chrome Network面板
  • 原文地址:https://www.cnblogs.com/geekdc/p/10282177.html
Copyright © 2011-2022 走看看