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;
}
public final int incrementAndGet() {
return unsafe.getAndAddInt(this, valueOffset, 1) + 1;
}
假设var1为count,var2为count的当前的值为2,var4应当为1
如果getAndAddInt执行成功了,那么将会返回var5的值同时var5应当为3
那么在incrementAndGet方法中最后返回的结果将是4.但是传进来的count的值为2这样不就多加了1吗