龙空技术网

「每天一道面试题」如何理解CAS中的ABA问题及如何解决!

Java实战技术 421

前言:

眼前朋友们对“cas的aba问题”大约比较关心,朋友们都需要学习一些“cas的aba问题”的相关文章。那么小编同时在网上收集了一些关于“cas的aba问题””的相关资讯,希望朋友们能喜欢,小伙伴们一起来了解一下吧!

一个变量V,如果变量V初次读取的时候是A,并且在准备赋值的时候检查到它仍然是A,不能说明它的值没有被其他线程修改过了,因为可能在这段期间它的值曾经被改成了B,然后又改回A,那CAS操作就会误认为它从来没有被修改过。

可以使用java并发包中的原子引用类"AtomicStampedReference",它可以通过控制变量值的版本来保证CAS的正确性。

标签: #cas的aba问题 #cas中的aba问题