1 原子性
原子性:一個操作,或者多個操作,要麼全部執行並且執行的過程中 不會被任何因素打斷
,要麼就 都不執行
2 原子性操作
和原子性是一個意思,不需要 synchronized。指不會被線程調度機制打斷的操作,這種操作,一旦開始,就一直運行到結束
,中間不會有任何 context switch
原子操作可以是一個步驟,也可以是多個操作步驟,但其 順序不可以被打亂
,也 不可以被切割而只執行其中的一部分
,將 整個操作視作一個整體
是原子性的核心特徵
3 Java原子性操作的理解(賦值和自增自減)
3.1 賦值操作是否是原子性 — 不是
- 不管是基礎數據類型還是引用數據類型,都不是原子操作
- 以結果論的話,局部變量基本數據類型的賦值操作,局部引用類型的 null賦值 是原子性的
- 在 Java中,任何賦值操作都不是原子操作。它都具有先將被賦入的值加載到棧中,然後再賦值給變量
- 像 int a = b ; 這種方式的賦值也不是原子操作,因爲它需要 先加載 b變量的值到棧中,然後再賦值給a