CAS與synchronized的使用情景

簡單的來講CAS適用於寫比較少的狀況下(多讀場景,衝突通常較少),synchronized適用於寫比較多的狀況下(多寫場景,衝突通常較多)性能

1.對於資源競爭較少(線程衝突較輕)的狀況,使用synchronized同步鎖進行線程阻塞和喚醒切換以及用戶態內核態間的切換操做額外浪費消耗cpu資源;而CAS基於硬件實現,不須要進入內核,不須要切換線程,操做自旋概率較少,所以能夠得到更高的性能。spa

2.對於資源競爭嚴重(線程衝突嚴重)的狀況,CAS自旋的機率會比較大,從而浪費更多的CPU資源,效率低於synchronized。線程

相關文章
相關標籤/搜索