鎖問題總結-同一個線程兩次獲取同一把鎖


鎖的問題-同一個線程兩次獲取同一把鎖

結果:會直接報異常

#include <iostream>
#include <mutex>

using namespace std; class ErrorLockUsage { public: void DisplayStr() { lock_guard<mutex> lockGuard(m_SourceLock); cout << m_strSouce<<endl; } void PushBackBehind(char c) { lock_guard<mutex> lockGuard(m_SourceLock); m_strSouce.push_back(c); DisplayStr();//在該函數中又獲取一次  } private: string m_strSouce; mutex m_SourceLock; }; int main() { ErrorLockUsage eu; eu.PushBackBehind('a'); cout << "Hello World!" << endl; return 0; }


免責聲明!

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



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