This question already has answers here:
Java volatile reference vs. AtomicReference
                            
                                (5个答案)
                            
                    
                2年前关闭。
        

    

如果一个类有一个私有的AtomicReference成员,并且只调用AtomicReference#getAtomicReference#set,那么用一个可为空的volatile成员替换它(a)安全和(b)有用吗?

最佳答案

按照here的回答,如果只使用get()set()方法,则两者之间没有真正的区别。

安全吗?是。

它有用吗?值得商bat的,考虑您将来可能需要哪些附加功能。如果您想使其尽可能简单,那么volatile可能会(可以说)提供更好的可读性。我通常会坚持使用AtomicReference,因为我不能总是预测未来的需求,并且我不太喜欢在可以避免的情况下更改变量类型。

10-03 00:15