死鎖檢測實現

死鎖檢測實現

}//遍歷圖,任意從圖的一個節點出發,對每一個節點進行dfs遍歷int search_for_cycle(int idx){ struct vertex *v = &tg->list[idx]...

2022-09-25
Java併發包獨佔鎖ReentrantLock

Java併發包獨佔鎖ReentrantLock

}考慮到公平原則,並沒有像非公平模式下那樣上來第一步就嘗試獲取鎖,這樣做的原因:可能在CLH等待佇列中存在等待獲取鎖的執行緒,按照公平性,需要直接呼叫AQS中的acquire()方法,讓它去判斷是獲取鎖還是放到等待佇列中,在公平模式下的tr...

2022-04-12
MySQL加鎖原理

MySQL加鎖原理

Demo1:等值查詢間隙鎖因為 表 t 中沒有 id=7 的記錄,1、根據原則1 Session A 的加鎖範圍就是 next-key lock (5, 10]...

2022-03-31
分散式鎖用 Redis 還是 Zookeeper?

分散式鎖用 Redis 還是 Zookeeper?

就是這麼簡單,我們只需要透過它的api中的lock和unlock即可完成分散式鎖,他幫我們考慮了很多細節:redisson所有指令都透過lua指令碼執行,redis支援lua指令碼原子性執行redisson設定一個key的預設過期時間為30...

2022-01-31
MySQL InnoDB鎖演算法,可算搞明白了

MySQL InnoDB鎖演算法,可算搞明白了

以next-key lock為基本單位,因為它是範圍最廣的鎖,如果鎖的範圍大了,後面刪減如果是主鍵/唯一索引上等值查詢,如果找到對應行,說明最多隻會有這一行,退化成行鎖毫無問題,還能減少鎖的範圍如果索引上等值查詢,最後一個值不滿足等值條件,...

2021-11-03