Java并发工具类LongAdder原理实例解析

上传:qqstrategy55120 浏览: 28 推荐: 0 文件:pdf 大小:319.73 KB 上传时间:2022-05-02 13:27:50 版权申诉

LongAdder实现原理图  高并发下N多线程同时去操作一个变量会造成大量线程CAS失败,然后处于自旋状态,导致严重浪费CPU资源,降低了并发性。  LongAdder维护了要给延迟初始化的原子性更新数组和一个基值变量base数组的大小保持是2的N次方大小,数组表的下标使用每个线程的hashcode值的掩码表示,数组里面的变量实体是Cell类型。  java.util.concurrency.atomic.LongAdder是Java8新增的一个类,提供了原子累计值的方法。CAS 本质上是由现代CPU在硬件级实现的原子指令,允许进行无阻塞,多线程的数据操作同时兼顾了安全性以及效率。核心的思想就是将AtomicLong一个value的更新压力分散到多个value中去,从而降低更新热点。

上传资源
用户评论