锁的问题-同一个线程两次获取同一把锁
结果:会直接报异常
#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; }