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