zoukankan      html  css  js  c++  java
  • 多线程测试时的辅助类--CountDownLatch

    多线程时,很多时候由于mian线程与多线程结束时间不可控,造成无法测试

    辅助测试类---CountDownLatch

    我看的视频教程匿名内部类无法使用外部的变量,所以CountDownLatch定义为了final,但是我现在jdk12似乎没问题

    /**
     * 多线程环境下运用CountDownLatch测试五种模式
     * @author 小帆敲代码
     *
     */
    public class Test02 {
      public static void main(String[] args) throws Exception {
       long start =System.currentTimeMillis();
         int threadNum=10;
       CountDownLatch countDownLatch=new CountDownLatch(threadNum);
       
       for(int i=0;i<10;i++) {

    //lambda
    //   new Thread(()-> {
    //    for(int j=0;j<100000;j++) {
    ////     Object o=Demo04.getInstance();
    //     Object o=Demo05.INSTANCE;
    //    }
    //    countDownLatch.countDown();//计数-1
    //   }).start();
    //   }
        new Thread(new Runnable() {
         @Override
         public void run() {
          for(int j=0;j<100000;j++) {
    //      Object o=Demo04.getInstance();
           Object o=Demo05.INSTANCE;
          }
          countDownLatch.countDown();//计数-1
         }
        }).start();
        }
       
       countDownLatch.await();//mian线程阻塞直至计数为0
       long end =System.currentTimeMillis();
       System.out.println("共计:"+(end-start));
      }
    }

  • 相关阅读:
    连接池的配置与维护
    对面向对象的理解
    ActiveMQ重试机制
    activemq持久化的几种方式详解
    zookeeper写数据流程
    G1垃圾回收器
    REDIS哨兵模式和集群模式
    REDIS复制
    REDIS参数配置和运行状态
    slow-log 和bin-log相关参数介绍
  • 原文地址:https://www.cnblogs.com/code-fun/p/11305212.html
Copyright © 2011-2022 走看看