JUC学习之路(并发计算)(六)

JUC学习之路(并发计算)(六),第1张

JUC学习之路(并发计算)(六)

        在原子类中,是允许直接实现数学计算的,例如:在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之后增加进来的新功能

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5708202.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存