zoukankan      html  css  js  c++  java
  • LongAdder 测试


    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;

    import java.util.concurrent.CountDownLatch;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    import java.util.concurrent.atomic.AtomicLong;
    import java.util.concurrent.atomic.LongAdder;

    /**
    * @Author: zdz
    * @Date: 2019/3/22 2:32 PM
    * @Version 1.0
    */
    public class Test {
    private static final Logger log = LoggerFactory.getLogger(Test.class);

    private static int clientTotal=1000000;
    private static int threadTotal=200;

    //使用LongAdder
    public static LongAdder count=new LongAdder();
    //使用Atomic
    // public static AtomicLong count=new AtomicLong(0);

    public static void main(String[] args) throws InterruptedException {


    long l = System.currentTimeMillis();
    ExecutorService executorService = Executors.newFixedThreadPool(threadTotal);
    final CountDownLatch countDownLatch = new CountDownLatch(clientTotal);
    for(int i=0;i<clientTotal;i++){
    executorService.execute(() -> {
    try {
    add();
    } catch (Exception e) {
    e.printStackTrace();
    log.error("Exception",e);
    }
    countDownLatch.countDown();
    });
    }
    countDownLatch.await();
    log.info("count:{}",count);
    executorService.shutdown();
    System.out.println(System.currentTimeMillis()-l);
    }

    private static void add(){
    //使用LongAdder类
    count.increment();
    //使用Atomic
    // count.getAndIncrement();
    }

    }
  • 相关阅读:
    Eclipse装svn的第三种方式
    JTable的表头渲染
    awt/swing的注意事项
    粘贴外部文本到JTable中
    关于double类型相乘的精度问题
    怎么切换字符集来编译RCP工程
    怎么切换不同语言启动Teamcenter
    关于Teigha的使用记录
    如何清空JTree的节点
    Oracle-SQL 小题
  • 原文地址:https://www.cnblogs.com/java-xz/p/10598247.html
Copyright © 2011-2022 走看看