From 67a0a166c24e0beb6bfb3170dec8019a9d897528 Mon Sep 17 00:00:00 2001 From: Dwsy <57082013+Dwsy@users.noreply.github.com> Date: Sun, 27 Mar 2022 15:29:54 +0800 Subject: [PATCH] correction --- .../Java并发体系-第一阶段-多线程基础知识.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/java_concurrency/Java并发体系-第一阶段-多线程基础知识.md b/docs/java_concurrency/Java并发体系-第一阶段-多线程基础知识.md index 0f06225..67a3a03 100644 --- a/docs/java_concurrency/Java并发体系-第一阶段-多线程基础知识.md +++ b/docs/java_concurrency/Java并发体系-第一阶段-多线程基础知识.md @@ -1564,7 +1564,7 @@ volatile自己虽然不能保证原子性,但是和CAS结合起来就可以保 例: AtomicInteger.getAndIncrement() 调用 Unsafe 类中的 CAS 方法,JVM 会帮我们实现出 CAS 汇编指令 这是一种完全依赖于硬件的功能,通过它实现原子操作。 - 原语的执行必须是连续的,在执行过程中不允许被中断,CAS 是 CUP 的一条原子指令。 + 原语的执行必须是连续的,在执行过程中不允许被中断,CAS 是 CPU 的一条原子指令。 - CAS的思想就是乐观锁的思想 @@ -1636,7 +1636,7 @@ public class CASDemo { ## CAS三大问题 -- 如果 CAS 长时间一直不成功,会给 CPU 带来很大的开销,在Java的实现中是一只通过while循环自旋CAS获取锁。 +- 如果 CAS 长时间一直不成功,会给 CPU 带来很大的开销,在Java的实现中是一直通过while循环自旋CAS获取锁。 - 只能保证一个共享变量的原子操作 @@ -2087,4 +2087,4 @@ synchronized(this) { 1、第一阶段只是简单的讲一下,在后面的系列里,会从硬件,C++源码层面讲解volatile,synchronized,内存屏障,MESI-缓存一致性等等进行讲解。 -2、还有一些问题,在基础阶段可能不太好讲。比如中断这个东西,可能理解的云里雾里的,后面的系列讲到AQS的时候,结合Java源码再讲的话,你会非常好理解。 \ No newline at end of file +2、还有一些问题,在基础阶段可能不太好讲。比如中断这个东西,可能理解的云里雾里的,后面的系列讲到AQS的时候,结合Java源码再讲的话,你会非常好理解。