#include <iostream>
#include <mutex>
using namespace std;
int main()
{
mutex m;
m.lock();
cout << "locked once\n";
m.lock();
cout << "locked twice\n";
return 0;
}
输出:
./a.out
locked once
locked twice
程序是否需要在第二次锁定时死锁,即互斥锁被同一个线程锁定两次?
答案 0 :(得分:2)
如果已经拥有互斥锁的线程调用了锁,则行为未定义:程序可能会死锁,或者,如果实现可以检测到死锁,则可能会抛出resource_deadlock_would_occur错误情况。