//sun.misc.Unsafe#getAndAddInt
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;
}
悟空老师,在AtomicInteger里面的getAndAddInt方法中,如果当前线程执行this.compareAndSwapInt(var1, var2, var5, var5 + var4)的时候执行失败,那么下一次执行这个方法的时候这个Object var1里面的这个值也会对应的更新为主内存里面的值,不这样感觉永远会执行失败,我说的对吗?
还有一个问题就是每个线程的AtomicInteger是对应主内存中的AtomicInteger的拷贝吗?