福哥答案2020-10-18:#福大大架构师每日一题#面试
简单回答:AtomicLong是CAS操做。LongAdder是多个单元操做。api
中级回答:
AtomicLong 是基于 CAS 方式自旋更新的;LongAdder 是把 value 分红若干cell,并发量低的时候,直接 CAS 更新值,成功即结束。并发量高的状况,CAS更新某个cell值和须要时对cell数据扩容,成功结束;更新失败自旋 CAS 更新 cell值。取值的时候,调用 sum() 方法进行每一个cell累加。
AtomicLong 包含有原子性的读、写结合的api;LongAdder 没有原子性的读、写结合的api,能保证结果最终一致性。
低并发场景AtomicLong 和 LongAdder 性能类似,高并发场景 LongAdder 性能优于 AtomicLong。架构
针对自增问题,synchronized、AtomicLong、LongAdder性能比较。这个可能会被面试到。并发
评论高并发