do {
var5 = this.getIntVolatile(var1, var2);
} while(!this.compareAndSwapInt(var1, var2, var5, var5 + var4));
说是 var1 是变量值,
问题 1.var5 是底层读取值 (底层是哪?。。主存吗)
在 var2 == var5 时 var1 = var5 + var4
问题 2.线程中判断到 var2 == var5 后,(还未执行 var1 = var5 + var4 时),瞬间。var2 让其他线程改掉了。
这不就不安全了吗? 所以说底层还是加锁了吗(这会这个底层又是哪呢)
我记着以前看过一个视频说是这一步是通过特殊硬件保证的?)
问题 3.什么是底层啊?主存? c++? cpu? 高速缓存?
求老哥们解惑