更新時間:2022-11-02 10:00:29 來源:動力節(jié)點 瀏覽740次
樂觀鎖∶故名思意十分樂觀,它總是認為不會出現(xiàn)問題,無論干什么不去上鎖!如果出現(xiàn)了問題,再次更新值測試
悲觀鎖:故名思意十分悲觀,它總是認為總是出現(xiàn)問題,無論干什么都會上鎖!再去操作!
我們這里主要講解樂觀鎖機制!
取出記錄時,獲取當前version
更新時,帶上這個version
執(zhí)行更新時, set version = newVersion where version = oldVersion
如果version不對,就更新失敗
樂觀鎖的原理:就是通過version的值來進行,判斷,樂觀鎖會在動態(tài)的通過and拼接到where的判斷條件下,在多線程執(zhí)行的時候,就會通過判斷version的值來,進行具體的操作,若當前查詢出的version的值與所查詢的值不相等,則該操作就不會被執(zhí)行。
樂觀鎖的原理:就是通過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