Skip to content

Commit 22a3368

Browse files
authored
Update 三大性质总结:原子性、可见性以及有序性.md
1 parent 4a3d2a4 commit 22a3368

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

7.三大性质总结:原子性、可见性以及有序性/三大性质总结:原子性、可见性以及有序性.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
>
1313
> a = a+1; //4
1414
15-
上面这四个语句中只**有第1个语句是原子操作**,将10赋值给线程工作内存的变量a,而语句2(a++),实际上包含了三个操作:1. 读取变量a的值;2:对a进行加一的操作;3.将计算后的值再赋值给变量a,而这三个操作无法构成原子操作。对语句3,4的分析同理可得这两条语句不具备原子性。当然,[java内存模型](https://juejin.im/post/5ae6d309518825673123fd0e)中定义了8中操作都是原子的,不可再分的。
15+
上面这四个语句中只**有第1个语句是原子操作**,将10赋值给线程工作内存的变量a,而语句2(a++),实际上包含了三个操作:1. 读取变量a的值;2:对a进行加一的操作;3.将计算后的值再赋值给变量a,而这三个操作无法构成原子操作。对语句3,4的分析同理可得这两条语句不具备原子性。当然,[java内存模型](https://juejin.im/post/5ae6d309518825673123fd0e)中定义了8种操作都是原子的,不可再分的。
1616

1717
1. lock(锁定):作用于主内存中的变量,它把一个变量标识为一个线程独占的状态;
1818
2. unlock(解锁):作用于主内存中的变量,它把一个处于锁定状态的变量释放出来,释放后的变量才可以被其他线程锁定
@@ -113,4 +113,4 @@ synchronized语义表示锁在同一时刻只能由一个线程进行获取,
113113
> 参考文献
114114
115115
《java并发编程的艺术》
116-
《深入理解java虚拟机》
116+
《深入理解java虚拟机》

0 commit comments

Comments
 (0)