欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

AtomicInteger 源码分析

程序员文章站 2022-07-12 19:34:58
...
AtomicInteger 是如何实现原子操作的了?

答案是 CAS(compare and swap)

CAS是 Java Unsafe 类中实现的一些 native 方法,底层代码使用 c/c++ 编写,java 通过 jni 进行调用,在底层芯片级别保证原子操作的进行.


举个例子:假设有两个线程执行 i++ 语句,初始时 i = 0. 那么最终的输出结果可能不为 2. 因为 Java 内存模型的缘故,导致一个线程的修改还没有更新到主存中,另一个线程也进行了修改,最终的结果可能是 1.
相关标签: AtomicInteger