长累加器的功能基于JDK8实现
发布时间
阅读量:
阅读量
Adder
我们需要了解 Adder 和 Accumulator 是 Java 8 中新增的类,并且属于较为新型的技术。对于 Adder 类来说,默认选择的是 LongAdder 实例,在高并发环境下 LongAdder 的性能优于 AtomicLong。这是因为 AtomicLong 设计上专为低并发场景提供优化,在处理高并发时由于 CAS(一致性原子锁)冲突的概率较高会导致频繁阻塞操作而影响整体效率。
而 LongAdder 采用了分段锁机制,在竞争不激烈的场景下,其所有线程被 LongAdder 利用以对同一个 Base 变量执行修改操作;然而,在竞争较为激烈的场合下,则会将不同线程分别映射至对应的 Cell 进行操作以实现修改;这种设计不仅降低了潜在的冲突几率,并且显著提升了系统的并发处理能力。
Accumulator
那么Accumulator又承担着什么功能呢?在功能上二者具有高度的一致性,在电路设计中二者扮演着相近的角色。其实是就是一个更为通用化的版本,在性能上能够满足更多的应用场景需求。例如LongAccumulator正是LongAdder的功能升级版本,在硬件架构上有所优化和扩展。因为LongAdder的设计仅限于数值加减操作而在系统扩展性方面存在一定的局限性而LongAccumulator则扩展了这一能力域使其能够处理更为复杂的运算需求
全部评论 (0)
还没有任何评论哟~
