Java volatile reference vs. AtomicReference
2022-08-31 07:45:23
对象引用和如果我只使用和 -方法,有什么区别吗?volatile
AtomicReference
get()
set()
AtomicReference
对象引用和如果我只使用和 -方法,有什么区别吗?volatile
AtomicReference
get()
set()
AtomicReference
简短的回答是:不。
来自 java.util.concurrent.atomic
package 文档。引用:
原子的访问和更新的内存效应通常遵循易失性的规则:
get
具有读取变量的记忆效果。volatile
set
具有写入(分配)变量的记忆效果。volatile
顺便说一句,该文档非常好,并且解释了所有内容。
AtomicReference::lazySet
是一个较新的(Java 6 +)操作,其语义无法通过变量实现。有关详细信息,请参阅此帖子。volatile
没有。
AtomicReference提供的额外功能是compareAndSet()方法和朋友。如果不需要这些方法,则易失性引用提供与 AtomicReference.set() 和 .get() 相同的语义。