1 原子性
原子性:一个操作,或者多个操作,要么全部执行并且执行的过程中 不会被任何因素打断
,要么就 都不执行
2 原子性操作
和原子性是一个意思,不需要 synchronized。指不会被线程调度机制打断的操作,这种操作,一旦开始,就一直运行到结束
,中间不会有任何 context switch
原子操作可以是一个步骤,也可以是多个操作步骤,但其 顺序不可以被打乱
,也 不可以被切割而只执行其中的一部分
,将 整个操作视作一个整体
是原子性的核心特征
3 Java原子性操作的理解(赋值和自增自减)
3.1 赋值操作是否是原子性 — 不是
- 不管是基础数据类型还是引用数据类型,都不是原子操作
- 以结果论的话,局部变量基本数据类型的赋值操作,局部引用类型的 null赋值 是原子性的
- 在 Java中,任何赋值操作都不是原子操作。它都具有先将被赋入的值加载到栈中,然后再赋值给变量
- 像 int a = b ; 这种方式的赋值也不是原子操作,因为它需要 先加载 b变量的值到栈中,然后再赋值给a