Java 8 AtomicLongよりも効率的な原子操作LogAdder LongAccumulator
5115 ワード
LongAdder LongAccumulatorの使用例プログラム内で高度な競合がある場合、大量のスレッドが同じ原子値にアクセスするには、Java 8がAtomicLongの代わりに高度な競合環境で提供するLongAdderとLongAccumulatorを使用します.
AtomicInteger更新メソッドJava 8は、古いAPIの代わりに原子クラスの値を更新するための2つの新しいメソッドupdateAndGetとaccumulateAndGetを追加した.
LongAdder adder = new LongAdder();
adder.add(2);
System.out.println(adder.intValue()); // 2
adder.increment();
System.out.println(adder.sum()); // 3 sum long
// accumulateAndGet ,
LongAccumulator la = new LongAccumulator((left, right) -> left + right, 10);
System.out.println(la.intValue()); // 10
AtomicInteger更新メソッドJava 8は、古いAPIの代わりに原子クラスの値を更新するための2つの新しいメソッドupdateAndGetとaccumulateAndGetを追加した.
AtomicInteger ai = new AtomicInteger();
//
Integer i = ai.updateAndGet(x -> 5);
System.out.println(i); // 5
//
ai.accumulateAndGet(1, (oldValue, paramValue) -> oldValue + paramValue);
System.out.println(ai.get()); // 6