什麼是原子操做

簡單來講,原子操做(atomic)就是不可分割的操做,在計算機中,就是指不會由於線程調度被打斷的操做。
好比,簡單的賦值是一個原子操做:多線程

m = 6; // 這是個原子操做併發

假如m原先的值爲0,那麼對於這個操做,要麼執行成功m變成了6,要麼是沒執行m仍是0,而不會出現諸如m=3這種中間態——即便是在併發的線程中。atom

而,聲明並賦值就不是一個原子操做:線程

int n = 6; // 這不是一個原子操做code

對於這個語句,至少有兩個操做:
①聲明一個變量n
②給n賦值爲6
——這樣就會有一箇中間狀態:變量n已經被聲明瞭可是尚未被賦值的狀態。
——這樣,在多線程中,因爲線程執行順序的不肯定性,若是兩個線程都使用m,就可能會致使不穩定的結果出現。變量

相關文章
相關標籤/搜索