mirror of
https://github.com/youthlql/JavaYouth.git
synced 2026-03-13 21:33:42 +08:00
correction
This commit is contained in:
@@ -1564,7 +1564,7 @@ volatile自己虽然不能保证原子性,但是和CAS结合起来就可以保
|
|||||||
例: AtomicInteger.getAndIncrement()
|
例: AtomicInteger.getAndIncrement()
|
||||||
调用 Unsafe 类中的 CAS 方法,JVM 会帮我们实现出 CAS 汇编指令
|
调用 Unsafe 类中的 CAS 方法,JVM 会帮我们实现出 CAS 汇编指令
|
||||||
这是一种完全依赖于硬件的功能,通过它实现原子操作。
|
这是一种完全依赖于硬件的功能,通过它实现原子操作。
|
||||||
原语的执行必须是连续的,在执行过程中不允许被中断,CAS 是 CUP 的一条原子指令。
|
原语的执行必须是连续的,在执行过程中不允许被中断,CAS 是 CPU 的一条原子指令。
|
||||||
|
|
||||||
- CAS的思想就是乐观锁的思想
|
- CAS的思想就是乐观锁的思想
|
||||||
|
|
||||||
@@ -1636,7 +1636,7 @@ public class CASDemo {
|
|||||||
|
|
||||||
## CAS三大问题
|
## CAS三大问题
|
||||||
|
|
||||||
- 如果 CAS 长时间一直不成功,会给 CPU 带来很大的开销,在Java的实现中是一只通过while循环自旋CAS获取锁。
|
- 如果 CAS 长时间一直不成功,会给 CPU 带来很大的开销,在Java的实现中是一直通过while循环自旋CAS获取锁。
|
||||||
|
|
||||||
- 只能保证一个共享变量的原子操作
|
- 只能保证一个共享变量的原子操作
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user