AtomicReference.compareAndSet(old,new) 保证 old.field 没有改变吗?
Does AtomicReference.compareAndSet(old,new) guarantees old.field wasn't change?
是否AtomicReference.compareAndSet(old,new)
保证
old.field
没变?
- 或者它只是保证
old
不是
重新分配给新对象?
如果 2 为真,是否意味着 AtomicReference
仅对 String
这样的不可变对象有用? (因为在 old
可变性的情况下, old.field
更改会丢失 成功 compareAndSet
)
AtomicReference
仅 检查引用相等性,不检查对字段的更改。
因此,它主要只对不可变类型有用。
是否AtomicReference.compareAndSet(old,new)
保证
old.field
没变?- 或者它只是保证
old
不是 重新分配给新对象?
如果 2 为真,是否意味着 AtomicReference
仅对 String
这样的不可变对象有用? (因为在 old
可变性的情况下, old.field
更改会丢失 成功 compareAndSet
)
AtomicReference
仅 检查引用相等性,不检查对字段的更改。
因此,它主要只对不可变类型有用。