关于compareAndSetInt这个方法

来源:4-5 面试官问ABA问题

大东来提高

2021-06-07

用AtomicInteger来举例
Object o, long offset,int expected,int x
老师我想问下,这个expected是用getIntVolatile方法取出来的,既然有Volatile,我是不是可以认为
expected这个值每次都是当前对象主内存的值呢?如果一样就用x更新主内存的值

写回答

1回答

求老仙

2021-07-14

参考 AtomicInteger 的源代码,value增加了volatile关键字修饰,由此可见getIntVolatile指的是读取volite的int变量值。因此并不是这个方法直接读取主存。

另外,从本质看,volatile关键字会为变量的读写增加内存屏障,这样看并不是某个方法决定的。

0
0

笑傲Java面试 剖析大厂高频面试真题 秒变offer收割机

深度剖析大厂面试高频真题,让你秒变offer收割机

1783 学习 · 314 问题

查看课程