compareAndSwapInt
生活随笔
收集整理的這篇文章主要介紹了
compareAndSwapInt
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在unsafe.cpp文件中,可以找到compareAndSwarpInt的實現
UNSAFE_ENTRY(jboolean, Unsafe_CompareAndSwapInt(JNIEnv *env, jobject unsafe, jobject obj, jlong offset, jint e, jint x)) UnsafeWrapper("Unsafe_CompareAndSwapInt"); oop p = JNIHandles::resolve(obj); //將Java對象解析成JVM的oop(普通對象指針), jint* addr = (jint *) index_oop_from_field_offset_long(p, offset); //根據對象p和地址偏移量找到地址 return (jint)(Atomic::cmpxchg(x, addr, e)) == e; //基于cas比較并替換, x表示需要更新的值,addr表示state在內存中的地址,e表示預期值 UNSAFE_END?
總結
以上是生活随笔為你收集整理的compareAndSwapInt的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: stateOffset
- 下一篇: AQS.accquire