File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 163163
164164## 1. 线程状态转换
165165
166- <div align =" center " > <img src =" assets/ace830df-9919-48ca-91b5-60b193f593d2 .png " width =" " /></div >
166+ <div align =" center " > <img src =" assets/1536767960941 .png " width =" 750 " /></div >
167167
168168### 新建(New)
169169
@@ -818,7 +818,7 @@ CAS 指的是现代 CPU 广泛支持的一种对内存中的共享数据进行
818818- 最后,CPU 会将旧的数值返回。
819819
820820这一系列的操作是原子的。它们虽然看似复杂,但却是 Java 5 并发机制优于原有锁机制的根本。简单来说,CAS 的含义是:我认为原有的值应该是什么,如果是,则将原有的值更新为新值,否则不做修改,并告诉我原来的值是多少。
821- 简单的来说,CAS 有 3 个操作数,内存值 V,旧的预期值 A,要修改的新值 B。当且仅当预期值 A 和内存值 V 相同时,将内存值 V 修改为 B,否则返回 V。这是一种乐观锁的思路,它相信在它修改之前,没有其它线程去修改它;而 Synchronized 是一种悲观锁,它认为在它修改之前,一定会有其它线程去修改它,悲观锁效率很低。
821+ 简单的来说,CAS 有 3 个操作数,内存值 V,旧的预期值 A,要修改的新值 B。当且仅当预期值 A 和内存值 V 相同时,将内存值 V 修改为 B,否则返回 V。这是一种乐观锁的思路,它相信在它修改之前,没有其它线程去修改它;而 Synchronized 是一种悲观锁,它认为在它修改之前,一定会有其它线程去修改它,悲观锁效率很低。
822822
823823
824824
You can’t perform that action at this time.
0 commit comments