【说站】java中CAS的底层原理
2024-10-19
2
java中CAS的底层原理
1、CAS的原理是用JNI调用C代码实现的,如果有Hotspot源代码的话,可以在Unsafe.cpp中找到实现。
static JNINativeMethod methods_15[] = { //省略一堆代码... {CC"compareAndSwapInt", CC"("OBJ"J""I""I"")Z", FN_PTR(Unsafe_CompareAndSwapInt)}, {CC"compareAndSwapLong", CC"("OBJ"J""J""J"")Z", FN_PTR(Unsafe_CompareAndSwapLong)}, //省略一堆代码... };
2、compareAndSwapint在Unsafe_CompareAndSwapint中深入Unsafe_CompareAndSwapint。
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); jint* addr = (jint *) index_oop_from_field_offset_long(p, offset); return (jint)(Atomic::cmpxchg(x, addr, e)) == e; UNSAFE_END
以上就是java中CAS的底层原理,希望对大家有所帮助。更多Java学习指路:Java基础
本教程操作环境:windows7系统、java10版,DELL G3电脑。
更新于:2小时前赞一波!
相关文章
- 【说站】java元注解是什么
- 【说站】java中jstack是什么
- 【说站】java中NIO是什么
- 【说站】java Channel是什么
- 【说站】java注解的本质分析
- 【说站】java中Buffer是什么
- 【说站】php数组实现原理
- 【说站】php框架的底层原理
- 【说站】java语言的发展历史
- 【说站】java语言的特点有哪些
- 【说站】java语言属于哪种语言
- 【说站】java语言代码大全
- 【说站】java和c 哪个好
- 【说站】java语言好还是c 好
- 【说站】新手学c还是java
- 【说站】java与c语言区别
- 【说站】java反射三种方法
- 【说站】Java泛型中有几种通配符
- 【说站】Java如何创建类型实例
- 【说站】Java泛型擦除的问题解决
文章评论
评论问答