遞歸鎖小總結


首先,遞歸鎖是什么

    首先,對於互斥鎖,分為遞歸鎖和非遞歸鎖。
在不同的線程中調用已鎖定的互斥鎖,必然會導致死鎖。
但是在同一個線程中,如果想要多次獲得一個鎖,只能使用遞歸鎖


其次,遞歸鎖是不被提倡的,用到遞歸鎖說明這個代碼設計是有問題的。
更好的做法是,提取出一個被兩個個公有函數調用的私有函數,這個私有函數無需鎖定mutex

盡量使用非遞歸鎖,在程序邏輯有問題時,產生死鎖暴露出問題。
有些邏輯特別混亂或涉及三方開發對外提供服務不得已時,再用遞歸鎖

c++11 提供了
std::recursive_mutex 這種遞歸鎖的類型

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM