CAS操作以及ABA问题
生活随笔
收集整理的這篇文章主要介紹了
CAS操作以及ABA问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
CAS 操作(Compare and Swap)無鎖算法
當一個線程從內存中獲取到一個數據,該線程改變該數據,當要進行內存數據修改操作時,先比較內存中數據是否是剛剛該線程獲取到數據是是否一致,若如不一致,該內存之前修改操作作廢,重新沖內存中獲取數據,繼續做修改操作。
底層實現:lock cmpxchg 指令(lock原子操作)硬件級別指令
ABA問題
其他線程修改內存中的最后值與原值相同,但實際意義上該值已經經過了一個過程的改變,實際意義上值相同,但已經不是原來的值,稱為ABA問題,解決該問題可以給值加上版本號,對比版本號,是否一致。通常使用布爾類型。
總結
以上是生活随笔為你收集整理的CAS操作以及ABA问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: brafteditor防抖_braft-
- 下一篇: Java中CAS操作本身怎么保证原子性及