• 2020-10-18:java中LongAdder和AtomicLong有什么区别?


    福哥答案2020-10-18:#福大大架构师每日一题#

    简单回答:AtomicLong是CAS操作。LongAdder是多个单元操作。

    中级回答:
    AtomicLong 是基于 CAS 方式自旋更新的;LongAdder 是把 value 分成若干cell,并发量低的时候,直接 CAS 更新值,成功即结束。并发量高的情况,CAS更新某个cell值和需要时对cell数据扩容,成功结束;更新失败自旋 CAS 更新 cell值。取值的时候,调用 sum() 方法进行每个cell累加。
    AtomicLong 包含有原子性的读、写结合的api;LongAdder 没有原子性的读、写结合的api,能保证结果最终一致性。
    低并发场景AtomicLong 和 LongAdder 性能相似,高并发场景 LongAdder 性能优于 AtomicLong。

    针对自增问题,synchronized、AtomicLong、LongAdder性能比较。这个可能会被面试到。
    ***
    [评论](https://user.qzone.qq.com/3182319461/blog/1602976707)

  • 相关阅读:
    Bootstrap按钮
    Bootstrap表单
    Bootstrap表格
    Bootstrap列表
    jq 的onchange事件
    php 跳出循环的几种方式
    php变量和字符串连接符——点
    php 从2维数组组合为四维数组分析
    mysql 删除表中记录
    mysql 聚合函数
  • 原文地址:https://www.cnblogs.com/waitmoon/p/13837184.html
Copyright © 2020-2023  润新知