在看 Java 的 concurrent 的教學文章時,看到 Atomic 這個關鍵字
因此稍微查了一下,Atomic 這個字在英文中是「原子」的意思,即在大自然中原子被視為是組成物體的最小單位
在 Java 中,定義一個 Atomic 表示的是這個行為是最小單位,亦即不可被切割,要嘛全部完成、要嘛全部失敗。
Atomic 是一個 package 的名稱 [1],同時也代表著具有 thread-safe 的變數
當一個變數要被修改時,一定包含著三個動作:讀取變數值、修改數值、將修改後的數值存回變數
Atomic 這個詞在 Java 中即表示一系列的動作是可以保證一起被完成而不會被中斷(其實就像是資料庫的交易的概念)
因此能夠確保在 Atomic 的環境之下,不會發生修改時資料不一致的問題。
在 Java 的 Atomic 類別中,即可以保障使用 Atomic 的變數處於多執行緒的環境下,具備 thread-safe 的特性。
PS. 比較詳細的說明可以參考 [3]。
參考資料:
1、java.util.concurrent.atomic
2、What is Atomic in Java?
3、java线程:Atomic(原子的)
沒有留言:
張貼留言