如果一个类有一个私有AtomicReference
成员,并且它只调用AtomicReference#get
和AtomicReference#set
,那么用一个可为空的volatile
成员替换它是否(a(安全,(b(有用?
正如这里所回答的,如果您只使用get()
和set()
方法,则两者之间没有真正的区别。
安全吗?是的。
有用吗?值得商榷,考虑到您将来可能需要哪些附加功能。如果你想让它尽可能简单,易失性可能会(可以说(提供稍微更好的可读性。我通常坚持AtomicReference
因为我不能总是预测未来的需求,而且我不太喜欢在可以避免的情况下更改变量类型。