CAS机制中的ABA问题
生活随笔
收集整理的這篇文章主要介紹了
CAS机制中的ABA问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在進行CAS操作的時候,會檢查值有沒有發生變化。如果沒有變化則更新。如果發生變化了,則進行自旋。
但是有種情況是,預期的值看似沒有變化,但是實際上的確變化了,例如原來的值是A,后來變成了B,最后又變成了A。那么使用CAS機制進行檢查時會發現值沒有變化,但是實際上值確實發生了變化。
解決思路就是利用版本號,每變化一次版本號加一。例如,最開始值是A,版本是1。后來變成了B,版本是2。最后又變成A,版本號是3。這樣不但檢查值有沒有變化,還要檢查版本號有沒有變化。如果全部相等,再更新。
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的CAS机制中的ABA问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么样的数据适合缓存?
- 下一篇: 内存泄漏和内存溢出有什么区别