更新時間:2022-11-02 10:00:29 來源:動力節點 瀏覽670次
樂觀鎖∶故名思意十分樂觀,它總是認為不會出現問題,無論干什么不去上鎖!如果出現了問題,再次更新值測試
悲觀鎖:故名思意十分悲觀,它總是認為總是出現問題,無論干什么都會上鎖!再去操作!
我們這里主要講解樂觀鎖機制!
取出記錄時,獲取當前version
更新時,帶上這個version
執行更新時, set version = newVersion where version = oldVersion
如果version不對,就更新失敗
樂觀鎖的原理:就是通過version的值來進行,判斷,樂觀鎖會在動態的通過and拼接到where的判斷條件下,在多線程執行的時候,就會通過判斷version的值來,進行具體的操作,若當前查詢出的version的值與所查詢的值不相等,則該操作就不會被執行。
樂觀鎖的原理:就是通過version的值來進行,判斷
Preparing: UPDATE user SET name=?, age=?, email=?, version=?, create_time=?, update_time=?
WHERE id=? AND version=?
樂觀鎖:1、先查詢,獲得版本號
version = 1
-- A
update user set name = "wang", version = version + 1
where id = 2 and version = 1
--B線程搶先完成,這個時候version = 2,會導致A修改失敗!
update user set name = "wang", version = version + 1
where id = 2 and version = 1
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習