電腦科學中,可重入互斥鎖(英語:reentrant mutex)是互斥鎖的一種,同一線程對其多次加鎖不會產生死結。可重入互斥鎖也稱遞歸互斥鎖(英語:recursive mutex)或遞歸鎖(英語:recursive lock)。

如果對已經上鎖的普通互斥鎖進行「加鎖」操作,其結果要麼失敗,要麼會阻塞至解鎖。而如果換作可重入互斥鎖,若且唯若嘗試加鎖的線程就是持有該鎖的線程時,類似的加鎖操作就會成功。可重入互斥鎖一般都會記錄被加鎖的次數,只有執行相同次數的解鎖操作才會真正解鎖。

遞歸互斥鎖解決了普通互斥鎖不可重入的問題:如果函數先持有鎖,然後執行回呼,但回呼的內容是呼叫它自己,就會產生死結[1]

另見

參考文獻

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.