java鎖

重入鎖、讀寫鎖、悲觀鎖和樂觀鎖、CAS無鎖、自旋鎖、AQS算法

輕量級(Lock手動開啓與釋放,比較靈活)與重量級(synchronized自動開啓與釋放) 可重入性(遞歸鎖)spa

CAS算法的過程是這樣:它包含三個參數CAS(V,E,N): V表示要更新的變量,E表示預期值,N表示新值。僅當V值等於E值時,纔會將V的值設爲N,若是V值和E值不一樣,則說明已經有其餘線程作了更新,則當前線程什麼都不作。最後,CAS返回當前V的真實值。線程

樂觀鎖:遞歸

update table set x=x+1, version=version+1 where id=#{id} and version=#{version};io

CAS鎖與樂觀鎖性質同樣,及比較在交換或比較在更新table

相關文章
相關標籤/搜索