原子操作CAS

Atom(不可分割)

什么是原子操作?如何實現(xiàn)原子操作?

syn基于阻塞的鎖的機制,1、被阻塞的線程優(yōu)先級很高,2、拿到鎖的線程一直不釋放鎖怎么辦?3、大量的競爭,消耗cpu,同時帶來死鎖或者其他安全。

CAS的原理

CAS(Compare And Swap),指令級別保證這是一個原子操作

三個運算符:? 一個內存地址V,一個期望的值A,一個新值B

基本思路:如果地址V上的值和期望的值A相等,就給地址V賦給新值B,如果不是,不做任何操作。

循環(huán)(死循環(huán),自旋)里不斷的進行CAS操作


CAS的問題

A---》B----》A,版本號:????? A1àB2-àA3

CAS操作長期不成功,cpu不斷的循環(huán),

Jdk中相關原子操作類的使用

AtomicMarkableReference,boolean 有沒有動過

AtomicStampedReference? 動過幾次

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容