Atomic中的AtomicInteger
来源:3-1 线程安全性-原子性-atomic-1
![](http://img1.sycdn.imooc.com/user/545845c40001996c02200220-100-100.jpg)
慕码人1088981
2018-08-29
public final int getAndAddInt(Object var1, long var2, int var4) {
int var5;
do {
//如果没有线程的干扰var5=var2
var5 = this.getIntVolatile(var1, var2);
} while(!this.compareAndSwapInt(var1, var2, var5, var5 + var4));
return var5;
}
为什么var2与var5的值不一样就能判断该线程被其他线程干扰到了?
写回答
1回答
-
zhusx
2018-08-29
var2是工作内存中的值,var5 是从主存中获取的值,如果不一样,说明有其他线程修改了var2在主存中的值。
022018-11-28
相似问题
AtomicInteger
回答 1
AtomicInteger中的方法
回答 1