我记得在某个 session 上看到过,但是找不到这方面的任何资料。
我想要这样的东西:
lock(_somelock)
{
if (_someBool)
return;
DoStuff();
} // Implicit unlock
代替:
lock(_somelock);
if (_someBool)
{
unlock(_somelock);
return;
}
DoStuff();
unlock(_somelock);
如您所见,代码因多个早期返回而变得非常臃肿。 显然可以创建另一个函数来处理锁定/解锁,但它更好,不是吗?
可以用 C++11 标准库吗?
最佳答案
是的,您可以使用 std::lock_guard包装一个互斥体。
{
std::lock_guard<std::mutex> lock(your_mutex);
if (_someBool)
return;
DoStuff();
}
关于c++ - 具有作用域/代码块的互斥锁/锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22246142/