猿问

A调用AAA()异常因为2个函数都有m_mutex->lock(); 怎么解决呢?

std::mutex
void A()
{
m_mutex->lock();

AAA()
m_mutex->unlock();

return;
}

void AAA()
{
m_mutex->lock();

m_mutex->unlock();

return;
}

qq_遁去的一_1
浏览 75回答 1
1回答

慕哥6287543

那就不调用啊,你的A函数已经加锁了。干嘛好调用AAA再加一次锁。而且互斥锁只能加锁一次,你的A里面加完锁,进入到AAA里面就就会导致AAA函数永远没办法获取到锁,从而阻塞在那里。只加锁一次,懂了吗,如果你两个函数都有功能,那就再A释放了锁在调用AAA或者只在A里面加锁
随时随地看视频慕课网APP
我要回答