The*_*ite 0 c++ multithreading mutex standard-library c++11
我记得在某个会议上看过它,但找不到任何相关信息.
我想要的东西:
lock(_somelock)
{
if (_someBool)
return;
DoStuff();
} // Implicit unlock
Run Code Online (Sandbox Code Playgroud)
代替:
lock(_somelock);
if (_someBool)
{
unlock(_somelock);
return;
}
DoStuff();
unlock(_somelock);
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,代码变得非常臃肿,有多个早期返回.显然,人们可以制作另一个功能来处理锁定/解锁,但它更好吗?
可以使用C++ 11标准库吗?
是的,您可以使用std :: lock_guard来包装互斥锁.
{
std::lock_guard<std::mutex> lock(your_mutex);
if (_someBool)
return;
DoStuff();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
197 次 |
| 最近记录: |