CAS的ABA问题

ABA问题本身并没有什么难理解的,可以简单用一句话来概括:线程1准备用CAS将变量的值由A替换为B,在此之前,线程2将变量的值由A替换为C,又由C替换为A,然后线程1执行CAS时发现变量的值仍然为A,所以CAS成功。 当然,如果仅仅关心最终的值是否符合预期,ABA问题并没有什么影响,这也是为什么大多数情况下我们依然可以使用AtomicInteger等数值CAS类不出问题的原因。 但是如果CAS操作 …