鎖機制介紹

2021-09-14 06:07:52 字數 531 閱讀 8864

悲觀鎖:在資料處理時將資料上鎖,直到執行完釋放鎖,在此期間其他操作會block。

樂觀鎖(cas):用原值和期望值比較,如果一致,則替換成新值。常用機制有:版本號控制和時間戳。用類實現樂觀鎖,基礎型別會引起(a-b-a)。

read uncommitted --不推薦

會讀取未提交的事務,引起髒讀read committed --解決髒讀

只會讀取提交的事務,解決了髒讀;但同乙個事務裡的兩次讀取同一行資料,如果有其他事務修改了這行的資料內容,那麼兩次讀取內容就會不一樣,引起不可重複讀repeatable read(mysql預設)–解決髒讀、不可重複讀(行級鎖)

對讀取的資料加上行級鎖,其他事務不能更改當前行資料,解決了不可重複讀;但是,如果其他事務不是修改資料,而是新增了一行資料,就會導致同乙個事務裡的兩次讀取資料會不一致(多了資料),引起幻讀serializable --解決髒讀、不可重複讀、幻讀(表鎖)

加入了表鎖,解決以上所有問題,但是效率低

linux 核心鎖機制簡單介紹

在作業系統引入了程序概念,程序成為排程實體後,系統就具備了併發執行多個程序的能力,但也導致了系統中各個程序之間的 資源競爭和共享。另外,由於中斷 異常機制的引入,以及核心態搶占都導致了這些核心執行路徑 程序 以交錯的方式執行。對於這些交錯路徑執行的核心路徑,如不採取必要的同步措施,將會對一些關鍵資料...

python鎖機制 python 鎖機制

當有兩個或跟多個執行緒或程序需要操作乙個變數或程序時,會出現意想不到的結果,這是因為執行緒或程序時迸發進行的,對同意變數或檔案操作時,會出現同時對其操作,從到導致邏輯錯誤。bin usr env python coding utf 8 import multiprocessing import ti...

mysql鎖機制 php Mysql鎖機制

表級鎖 開銷小,加鎖快 不會出現死鎖 鎖定粒度大,發生鎖衝突的概率最高,併發度最低。行級鎖 開銷大,加鎖慢 會出現死鎖 鎖定粒度最小,發生鎖衝突的概率最低,併發度也最高。共享鎖和排它鎖 頁面鎖 開銷和加鎖時間界於表鎖和行鎖之間 會出現死鎖 鎖定粒度界於表鎖和行鎖之間,併發度一般 mysql的行級鎖有...