zoukankan      html  css  js  c++  java
  • Java:Java多线程实现性能测试

    创建多线程和线程池

    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    import java.util.concurrent.TimeUnit;
     
    //开启的线程数
    int threadSize = 100;  
    //创建线程池
    ExecutorService executorService = Executors.newFixedThreadPool(threadSize);
    //开始时间
    long start = System.currentTimeMillis();
    //让线程池中的每一个线程都开始工作
    for (int j = 0; j < threadSize; j++) {
        //执行线程
        executorService.execute(new TestPerformance(threadSize));
    }
    //等线程全部执行完后关闭线程池
    executorService.shutdown();
    executorService.awaitTermination(Integer.MAX_VALUE, TimeUnit.DAYS);
    //结束时间
    long end = System.currentTimeMillis();
    
    System.out.println("测试次数:" + TestPerformance.atomicInteger.get());
    System.out.println("用时:" + (end - start));
    System.out.println("速度:" + TestPerformance.atomicInteger.get() * 1000 / (end - start) + "次/秒");

    具体逻辑

    package com.test.performance;
     
     
    import java.util.concurrent.atomic.AtomicInteger;
     
    /**
     * 测试性能.
     */
    public class TestPerformance implements Runnable {
     
        //每个线程的执行次数
        private int size;
     
        //记录多线程的总执行次数,保证高并发下的原子性
        public static AtomicInteger atomicInteger = new AtomicInteger(0);
     
        public TestPerformance(int size) {
            this.size = size;
        }
     
        @Override
        public void run() {
     
            int count = 0;
            while (count < size) {
                count++;
     
                atomicInteger.getAndIncrement();
     
                ///////////////
            //在此写入需要测试性能的代码块
            ///////////////
     
                System.out.println("线程ID与对应的执行次数:" + Thread.currentThread().getId() + "--->" + count);
            }
        }
    }

    文章转载至:https://blog.csdn.net/weixin_43192102/article/details/106195948

  • 相关阅读:
    SCCM2012 R2实战系列之七:软件分发(exe)
    man 手册--nc
    挂载虚拟机磁盘文件
    bond模式详解
    Windows下计算md5值
    man手册--iostat
    mount---挂载文件系统
    Linux-swap分区
    sync---强制将被改变的内容立刻写入磁盘
    vmstat---有关进程、虚存、页面交换空间及 CPU信息
  • 原文地址:https://www.cnblogs.com/nhdlb/p/12968935.html
Copyright © 2011-2022 走看看