AtomicLong与LongAdder执行效率对比

 AtomicLong与LongAdder执行效率对比:

package com.mashibing.juc.c_018_00_AtomicXXX;import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;
import java.util.concurrent.atomic.LongAdder;public class T02_AtomicVsSyncVsLongAdder {static long count2 = 0L;static AtomicLong count1 = new AtomicLong(0L);static LongAdder count3 = new LongAdder();public static void main(String[] args) throws Exception {Thread[] threads = new Thread[1000];for(int i=0; i {for(int k=0; k<100000; k++) count1.incrementAndGet();});}long start = System.currentTimeMillis();for(Thread t : threads ) t.start();for (Thread t : threads) t.join();long end = System.currentTimeMillis();//TimeUnit.SECONDS.sleep(10);System.out.println("Atomic: " + count1.get() + " time " + (end-start));//-----------------------------------------------------------Object lock = new Object();for(int i=0; i {for(int k=0; k<100000; k++) count3.increment();});}start = System.currentTimeMillis();for(Thread t : threads ) t.start();for (Thread t : threads) t.join();end = System.currentTimeMillis();//TimeUnit.SECONDS.sleep(10);System.out.println("LongAdder: " + count1.longValue() + " time " + (end-start));}static void microSleep(int m) {try {TimeUnit.MICROSECONDS.sleep(m);} catch (InterruptedException e) {e.printStackTrace();}}}

 

 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部