当前位置: 代码迷 >> 综合 >> AtomicInteger 底层实现原理是什么?如何在自己的产品代码中应用 CAS 操作?
  详细解决方案

AtomicInteger 底层实现原理是什么?如何在自己的产品代码中应用 CAS 操作?

热度:79   发布时间:2023-12-15 10:21:18.0

如果面试问道

AtomicInteger 底层实现原理是什么?如何在自己的产品代码中应用 CAS 操作?

你会如何回答呢?

我的回答

AtomicIntger 是对 int 类型的一个封装,提供原子性的访问和更新操作,其原子性操作的实现是基于 CAS(compare-and-swap)技术。

所谓 CAS,表征的是一些列操作的集合,获取当前数值,进行一些运算,利用 CAS 指令试图进行更新。如果当前数值未变,代表没有其他线程进行并发修改,则成功更新。否则,可能出现不同的选择,要么进行重试,要么就返回一个成功或者失败的结果。

从 AtomicInteger 的内部属性可以看出,它依赖于 Unsafe 提供的一些底层能力,进行底层操作;以 volatile 的 value 字段,记录数值,以保证可见性。

private static final jdk.internal.misc.Unsafe