我有一个类可以打开事务,将操作添加到队列,然后关闭事务。在 open->close 生命周期中,我想使用递归互斥锁,以便在任何时候只有一个线程可以打开事务。所有其他线程都被阻塞,直到当前事务结束。
class MyObject
{
void beginTransaction()
{
// acquire mutex
}
void endTransaction()
{
// release mutex
}
boost::recursive_mutex m_mutex;
}
在这种情况下,我很难确定如何使用 a recursive_mutex
,因为锁的存在时间会比单个方法的范围更长。谁能建议我如何在这里应用锁定?