在原子类中,是允许直接实现数学计算的,例如:在AtomicInteger 类是可以直接进行加法计算处理的,但是如果说此时有一些 *** 作不希望使用原子类,就是一些最原始的 *** 作数字想要安全的实现计算,在JDK1.8 之后提供了新的原子的计算类。
原子计算类分为:累加器(DoubleAccumulator、LongAccumulator)和加法器(DoubleAdder、LongAdder)两种
DoubleAccumulator 范例:累加器的使用@Test public void useDoubleAccmulator(){ DoubleAccumulator accumulator = new DoubleAccumulator((x,y)->x+y ,1.1); System.out.println("【累加器】原始存储内容:"+accumulator.doublevalue()); accumulator.accumulate(20); // 数据累加的计算 System.out.println("【累加器】新的内容存储:"+accumulator.doublevalue()); }
结果:
累加器是在一个数据的基础之上不断的进行累加计算的实现的,除了这种机制之外,也可以进行安全的加法计算
DoubleAdder@Test public void useDoubleAdder(){ // 定义加法器 DoubleAdder adder = new DoubleAdder(); adder.add(10); adder.add(20); adder.add(30); System.out.println("【加法器】计算结果:"+adder.doublevalue()); } // 结果:【加法器】计算结果:60.0
这种计算 *** 作是在没有原子类的时候保证准确计算的一种准则 *** 作类,并且是在JUC之后增加进来的新功能
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)