java面試題之什么是CAS


CAS,即Compare and Switch,比較-替換,里面有三個操作數:內存值V、舊的預期值A、要修改的值B;

當預期值A和內存值V相同時,才會將內存值修改為B並返回true,否則什么都不做並返回false。

CAS一定要和volatile變量配合使用,這樣才能保證每次拿到的變量是主內存中最新的那個值,否則舊的預期值A對某條線程來說,永遠是一個不會變的值A。

但是,CAS存在ABA問題,解決方案是:可以對每個值添加一個版本號來判斷,CAS只是一種思想


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM