AtomicInteger
AtomicInteger是java自带的原子操作的类,调用unsafe的 public final int getAndAddInt(Object var1, long var2, int var4) ;来完成自增操作。
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;
}
不断获取最新的值,然后进行cas操作。
而AtomicReference之类不参与数值计算的只有cas,这样意味着外部必须循环cas知道成功为止