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(); }}