AtomicReference.compareAndSet(old,new)是否保证old.field没有改变?
是否AtomicReference.compareAndSet(old,new)保证
old.field不是变了吗?- 或者它只是保证
old不会重新分配给新对象?
如果 2 为真,这是否意味着AtomicReference仅对不可变对象有用,例如String?(因为在可变性的情况下old的old.field变化都将丢失与成功 compareAndSet)
回答
AtomicReference 仅检查引用相等性,不检查字段的更改。
因此,它主要只对不可变类型有用。
- Yes, basically.
THE END
二维码