老师 关于getAndAddInt() 参数的问题
来源:3-1 线程安全性-原子性-atomic-1
![](http://img1.sycdn.imooc.com/user/54586653000151cd02200220-100-100.jpg)
华山小叮当
2018-05-26
var1表示传递过来的对象的值
var4表示要改变多少值
var5表示从主存中获取的值?
var5+var4表示更新后的值
那var2表示啥
写回答
1回答
-
你好,这篇手记 https://www.imooc.com/article/25277 我做了一些问题的整理,包括这个,你这个我单独复制出来:
关于CAS中compareAndSwapInt(var1, var2, var5, var5 + var4)的理解
compareAndSwapInt(var1, var2, var5, var5 + var4)换成 compareAndSwapInt(obj, offset, expect, update)能清楚一些,如果obj内的value和expect相等,就证明没有其他线程改变过这个变量,那么就更新它为update,如果这一步CAS没有成功,那就采用自旋的方式继续进行CAS操作。这块是一个CPU指令完成的,依旧是原子操作。012018-05-26
相似问题