gpt4 book ai didi

java - 引用分配是原子的,所以为什么要使用 AtomicReference

转载 作者:IT老高 更新时间:2023-10-28 21:18:03 31 4
gpt4 key购买 nike

我对 AtomicReference 有一个简单的一般性问题。

如果引用分配在 java 中是原子的,为什么要使用 AtomicReference?

另外我想问一下在 64 位 VM 中引用分配是否是原子的?

我们是否需要 volatile 才能拥有原子的引用分配?

最佳答案

Why use AtomicReference if reference assignment is atomic in java?

当创建新值的决策依赖于引用的先前值时,您需要它。例如,在实现一些类似 LinkedList 的数据结构时,您不想将头部设置为引用前一个节点的新节点。在读取前一个节点和将 head 设置为新节点之间的时间里,其他一些线程可能同时更新了 head 引用的值。如果我们的线程不知道这个变化,它就会丢失。

Do we need volatile to have reference assigment atomic?

操作本身将在执行它的 CPU 内核上自动执行,但不能保证其他内核上的线程在下一次读取时会知道它。

关于java - 引用分配是原子的,所以为什么要使用 AtomicReference,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15196355/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com