关于AtomicReference和AtomicStampedReference

收藏
集合
3
Jun 19, 2019

两个类在业务上我们应该使用哪个?第二个类不是解决了cas的aba问题,那我们是不是尽量使用第二个而不是用第一个。

回答

小跑的蜗牛回答

使用第二个

AtomicStampedReference它内部不仅维护了对象值,还维护了一个时间戳(我这里把它称为时间戳,实际上它可以使任何一个整数,它使用整数来表示状态值)。当AtomicStampedReference对应的数值被修改时,除了更新数据本身外,还必须要更新时间戳。当AtomicStampedReference设置对象值时,对象值以及时间戳都必须满足期望值,写入才会成功。因此,即使对象值被反复读写,写回原值,只要时间戳发生变化,就能防止不恰当的写入。
 

(0)

提交成功