在編程中,一個原子操做是隻會出現一次的。一個原子操做在中間不會中止:要麼所有發生要麼一點也不發生。咱們只有在原子操做完成以後纔會看到原子操做的具體影響。程序員
甚至是很是簡單的表達式可以構造分解爲簡單操做的複雜操做。可是,你能夠指定一些原子操做:編程
原子操做不會交錯執行因此沒有必要擔憂線程衝突的問題。可是這樣就說沒有必要同步全部的原子操做,由於一致性錯誤仍然可能發生。使用volatile變量能夠減小內存一致性錯誤,由於任何寫入volatile 變量的值會被其餘的讀到的是相同值。這說明對volatile 變量的修改對其餘線程都是可見的。並且這意味找當一個線程讀取一個volatile變量的時候,這不單單說明能夠讀取針對volatile 變量的最新修改值還看到對代碼的影響。線程
使用簡單的原子變量比訪問同步操做中的原來更加有效,可是這個須要程序員當心的去避免內存一致性問題。這個額外工做是否值得但是須要取決於應用的複雜性和規模了。內存