1.1 构造方法
private volatile int value;
new AtomicInteger();
new AtomicInteger(10);
public AtomicInteger(int initialValue) {
value = initialValue;
}
1.2 其他方法
public final void set(int newValue) {
value = newValue;
}
public final int get() {
return value;
}
- addAndGet(int delta) 进行加法运算,返回最终结果
public final int addAndGet(int delta) {
return unsafe.getAndAddInt(this, valueOffset, delta) + delta;
}
unsafe.java:
public final int getAndAddInt(Object var1, long var2, int var4) {
int var5;
do {
var5 = this.getIntVolatile(var1, var2);
} while(!this.compareAndSwapInt(var1, var2, var5, var5 + var4));
return var5;
}
- getAndAdd(int var1): 进行加法运算并返回原始值
public final int getAndAdd(int var1) {
return unsafe.getAndAddInt(this, valueOffset, var1);
}
unsafe.java
public final int getAndAddInt(Object var1, long var2, int var4) {
int var5;
do {
var5 = this.getIntVolatile(var1, var2);
} while(!this.compareAndSwapInt(var1, var2<