JVM 源码分析07 CAS 底层实现

JVM 源码分析07 CAS 底层实现

这里只是举了一个例子, 也许这个例子也不太恰当, 本文只是列出了这个api的调用方法而已, 重点在于介绍compareAndSet()方法的底层原理.  调用的是unsafe里面的compareAndSwapInt()方法

JVM 源码分析07 CAS 底层实现

JVM 源码分析07 CAS 底层实现

刚刚跑去取介绍了getUnsafe()方法...接下来继续讲解cas...

刚才说到了AtomicBoolean类里的compareAndSet()方法内部其实调用了Unsafe类里的compareAndSwapInt()方法.

 

JVM 源码分析07 CAS 底层实现Unsafe类里的compareAndSwapInt源码如下:

JVM 源码分析07 CAS 底层实现

cmpxchg()方法

JVM 源码分析07 CAS 底层实现

JVM 源码分析07 CAS 底层实现

JVM 源码分析07 CAS 底层实现

JVM 源码分析07 CAS 底层实现

JVM 源码分析07 CAS 底层实现

JVM 源码分析07 CAS 底层实现

JVM 源码分析07 CAS 底层实现

JVM 源码分析07 CAS 底层实现

JVM 源码分析07 CAS 底层实现

JVM 源码分析07 CAS 底层实现

JVM 源码分析07 CAS 底层实现