1. 程式人生 > >.NET面試題系列(十四)分布式鎖

.NET面試題系列(十四)分布式鎖

情況 png 過期 www. tro 守護線程 自動 17. alt

如何解決分布式鎖超時問題

我們可以讓獲得鎖的線程開啟一個守護線程,用來給快要過期的鎖“續航”

技術分享圖片

當過去了29秒,線程A還沒執行完,這時候守護線程會執行expire指令,為這把鎖“續命”20秒。守護線程從第29秒開始執行,每20秒執行一次。

技術分享圖片

當線程A執行完任務,會顯式關掉守護線程。

技術分享圖片

另一種情況,如果節點1 忽然斷電,由於線程A和守護線程在同一個進程,守護線程也會停下。這把鎖到了超時的時候,沒人給它續命,也就自動釋放了。

技術分享圖片

http://www.360doc.com/content/18/0528/08/36490684_757590223.shtml

.NET面試題系列(十四)分布式鎖