可重入互斥鎖
![本頁使用了標題或全文手工轉換](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
計算機科學中,可重入互斥鎖(英語:reentrant mutex)是互斥鎖的一種,同一線程對其多次加鎖不會產生死鎖。可重入互斥鎖也稱遞歸互斥鎖(英語:recursive mutex)或遞歸鎖(英語:recursive lock)。
如果對已經上鎖的普通互斥鎖進行「加鎖」操作,其結果要麼失敗,要麼會阻塞至解鎖。而如果換作可重入互斥鎖,當且僅當嘗試加鎖的線程就是持有該鎖的線程時,類似的加鎖操作就會成功。可重入互斥鎖一般都會記錄被加鎖的次數,只有執行相同次數的解鎖操作才會真正解鎖。
遞歸互斥鎖解決了普通互斥鎖不可重入的問題:如果函數先持有鎖,然後執行回調,但回調的內容是調用它自己,就會產生死鎖。[1]
另見
參考文獻
- ^ Buschmann, Frank; Henney, Kevlin; Schmidt, Douglas C. Pattern-Oriented Software Architecture, A Pattern Language for Distributed Computing. John Wiley & Sons. 2007: 374 [2018-07-18]. (原始內容存檔於2016-05-09) (英語).
![]() | 這是一篇與電腦相關的小作品。您可以透過編輯或修訂擴充其內容。 |