AtomicReference,以下简称AR;AtomicReferenceFieldUpdater,以下简称ARFU。两者功能一致,原理相同,都基于Unsafe的CAS操作。
AR通常作为对象的成员使用,启用指针压缩的情况下内存占用16B,不启用占用24B。
ARFU通常作为类的静态成员使用,对实例成员进行修改。
总结:ARFU更适合频繁创建实例的情况。
使用对比:
-
AR
AR使用截图.jpg -
ARFU
ARFU使用截图.jpg
AtomicReference,以下简称AR;AtomicReferenceFieldUpdater,以下简称ARFU。两者功能一致,原理相同,都基于Unsafe的CAS操作。
AR通常作为对象的成员使用,启用指针压缩的情况下内存占用16B,不启用占用24B。
ARFU通常作为类的静态成员使用,对实例成员进行修改。
总结:ARFU更适合频繁创建实例的情况。
使用对比:
AR
ARFU