为什么在读取和设置简单引用时使用 AtomicRefernce 已经是原子操作
Why to use AtomicRefernce when reading & setting simple reference is already atomic operation
有人可以澄清我对 AtomicReferences 的疑问。作为 par java 内存模型,无论 32 位还是 64 位机器,读取和写入引用始终是原子操作。那么在什么场景下使用AtomicRefernce会有用
AtomicReference 提供的其他操作无法通过普通引用实现。
例如,要确定您要替换哪个值:
ref.compareAndSet(expectedCurrentValue, newValue);
要获取最后一个值并替换为其他值:
oldValue = ref.getAndSet(newValue);
使用 AtomicReference 即使多个线程试图访问相同的引用,您也可以安全地执行这些操作。
有人可以澄清我对 AtomicReferences 的疑问。作为 par java 内存模型,无论 32 位还是 64 位机器,读取和写入引用始终是原子操作。那么在什么场景下使用AtomicRefernce会有用
AtomicReference 提供的其他操作无法通过普通引用实现。
例如,要确定您要替换哪个值:
ref.compareAndSet(expectedCurrentValue, newValue);
要获取最后一个值并替换为其他值:
oldValue = ref.getAndSet(newValue);
使用 AtomicReference 即使多个线程试图访问相同的引用,您也可以安全地执行这些操作。