「每天一道面試題」如何理解CAS中的ABA問題及如何解決!

一個變量V,如果變量V初次讀取的時候是A,並且在準備賦值的時候檢查到它仍然是A,不能說明它的值沒有被其他線程修改過了,因爲可能在這段期間它的值曾經被改成了B,然後又改回A,那CAS操作就會誤認爲它從來沒有被修改過。 可以使用java併發包中的原子引用類"AtomicStampedReference",它可以通過控制變量值的版本來保證CAS的正確性。
相關文章
相關標籤/搜索