鎖的問題-同一個線程兩次獲取同一把鎖
結果:會直接報異常
#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; }