首页 > 解决方案 > AtomicReference.compareAndSet(old,new) 是否保证 old.field 没有改变?

问题描述

是否AtomicReference.compareAndSet(old,new)保证

  1. old.field没有改变吗?
  2. 或者它只是保证old没有重新分配给新对象?

如果 2 为真,是否意味着AtomicReference仅对不可变对象有用String?(因为在更改的可变性的情况old成功old.field丢失) compareAndSet

标签: javamultithreadingatomicreference

解决方案


AtomicReference 检查引用相等性,不检查字段的更改。

因此,它主要只对不可变类型有用。


推荐阅读