原子操作(atomic operation)意為”不可被中斷的壹個或壹系列操作” 。處理器使用基於對緩存加鎖或總線加鎖的方式來實現多處理器之間的原子操作。在Java中可以通過鎖和循環CAS的方式來實現原子操作。CAS操作——Compare & Set,或是 Compare & Swap,現在幾乎所有的CPU指令都支持CAS的原子操作。
原子操作是指壹個不受其他操作影響的操作任務單元。原子操作是在多線程環境下避免數據不壹致必須的手段。int++並不是壹個原子操作,所以當壹個線程讀取它的值並加1時,另外壹個線程有可能會讀到之前的值,這就會引發錯誤。
為了解決這個問題,必須保證增加操作是原子的,在JDK1.5之前我們可以使用同步技術來做到這壹點。到JDK1.5,java.util.concurrent.atomic包提供了int和long類型的原子包裝類,它們可以自動的保證對於他們的操作是原子的並且不需要使用同步。