一、遇見AtomicInteger
在看項目代碼的時候看到這個類,發現其功能很簡單,就是一個整型變量的類型,出於好奇看了其類定義。
該類位於java.util.concurrent.atomic下,在concurrent下可知該類肯定與並發和原子性相關。
二、進一步了解
源碼非常簡單,結合其他人的博客,基本可以了解到AtomicInteger類是一個提供原子操作的Integer類。
普通的整型類如int和Integer類,在++i/i++等操作並不是線程安全的,在並發環境下容易出現臟數據。
AtomicInteger使用了volatile關鍵字進行修飾,使得該類可以滿足線程安全。
private volatile int value; /** * Creates a new AtomicInteger with the given initial value. * * @param initialValue the initial value */ public AtomicInteger(int initialValue) { value = initialValue; } /** * Creates a new AtomicInteger with initial value {@code 0}. */ public AtomicInteger() { }
在源碼中也有所體現。