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();
                }
            }
        }
    }
    
  • 相关阅读:
    26、面向对象设计模式之单例模式——泛型单例
    Unity 汽车碰撞
    makeObjectsPerformSelector对数组中的对象发送消息执行对象中方法
    NSHashTable NSPointerArray
    webrtc 音频一点相关知识
    记一次ios加急上架经历
    iOS 获取当前正在显示的ViewController
    ios表单上传图片或文件
    https适配
    swift block
  • 原文地址:https://www.cnblogs.com/geekdc/p/10282177.html
Copyright © 2011-2022 走看看