認識樂觀鎖和悲觀鎖

樂觀鎖:

優勢:適合讀多寫少的業務,併發性好,提高系統吞吐量。

缺點:用戶體驗不好,提交時易被告知數據已被修改。

操作方式:當我們要對一個數據庫中的一條數據進行修改的時候,只有對該數據進行提交更新的時候,纔會正式對數據的衝突與否進行檢測,如果發現衝突了,則返回給用戶錯誤的信息,讓用戶決定如何去做。(如基於mysql通過加version字段實現樂觀鎖、CAS算法)

CAS(Compare and Swap):

CAS是項樂觀鎖技術,當多個線程嘗試使用CAS同時更新同一個變量時,只有其中一個線程能更新變量的值,而其它線程都失敗,失敗的線程並不會被掛起,而是被告知這次競爭中失敗,並可以再次嘗試。

悲觀鎖:

優勢:適合寫多讀少的雨霧,隔離級別爲重複讀,提高數據可靠性。

缺點:併發性不好,性能不高。

操作方式:當我們要對一個數據庫中的一條數據進行修改的時候,爲了避免同時被其他人修改,對該數據進行加鎖以防止併發。(基於mysql通過select…for update實現悲觀鎖)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章