From 35b1196267dd4f3a10a5e6d3b35defadc2f8e19d Mon Sep 17 00:00:00 2001 From: SnailClimb Date: Thu, 11 Apr 2019 15:37:49 +0800 Subject: [PATCH] Update Atomic.md --- docs/java/Multithread/Atomic.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/java/Multithread/Atomic.md b/docs/java/Multithread/Atomic.md index 33dd7ef3..785ac34e 100644 --- a/docs/java/Multithread/Atomic.md +++ b/docs/java/Multithread/Atomic.md @@ -149,7 +149,7 @@ AtomicInteger 类的部分源码: AtomicInteger 类主要利用 CAS (compare and swap) + volatile 和 native 方法来保证原子操作,从而避免 synchronized 的高开销,执行效率大为提升。 -CAS的原理是拿期望的值和原本的一个值作比较,如果相同则更新成新的值。UnSafe 类的 objectFieldOffset() 方法是一个本地方法,这个方法是用来拿到“原来的值”的内存地址,返回值是 valueOffset。另外 value 是一个volatile变量,在内存中可见,因此 JVM 可以保证任何时刻任何线程总能拿到该变量的最新值。 +CAS的原理是拿期望的值和原本的一个值作比较,如果相同则更新成新的值。UnSafe 类的 objectFieldOffset() 方法是一个本地方法,这个方法是用来拿到“原来的值”的内存地址。另外 value 是一个volatile变量,在内存中可见,因此 JVM 可以保证任何时刻任何线程总能拿到该变量的最新值。 ### 3 数组类型原子类