CAS并发原语–>调用UnSafe类的CAS方法
AtomicInteger integer = new AtomicInteger(0);
integer.compareAndSet(0,1);
//package java.util.concurrent.atomic
//valueoffset为对象的内存地址
public final boolean compareAndSet(int expect, int update) {
return unsafe.compareAndSwapInt(this, valueOffset, expect, update);
}
compareAndSet()中调用是unsafe.compareAndSwapInt()
unsafe.compareAndSwapInt()调用sun.misc的本地(native)方法compareAndSwapInt()
//package sun.misc;
public final native boolean compareAndSwapInt(Object var1, long var2, int var4, int var5);