sun.misc.Unsafe中CAS方法如下:
compareAndSwapObject(java.lang.Object arg0, long arg1, java.lang.Object arg2..., java.lang.Object arg3);
compareAndSwapInt(java.lang.Object arg0, long arg1, int arg2, int arg3);
compareAndSwapLong...(java.lang.Object arg0, long arg1, long arg2, long arg3);
来看下openJDK8的hotspot中,unsafe是如何实现的,链接http://...oop e = JNIHandles::resolve(e_h);//期望值
oop p = JNIHandles::resolve(obj);//更新的对象
HeapWord* addr...atomic_compare_exchange_oop(x, addr, e, true);//调用方法执行CAS操作
jboolean success = (res == e);//atomic_compare_exchange_oop的返回值是否等于期望值