![](/img/trans.png)
[英]boost::details::pool::pthread_mutex and boost::details::pool::null_mutex
[英]Is there an equivalent to boost::interprocess::null_mutex in C++11 (e.g. std::null_mutex)?
我发现当我不想在某些情况下使用同步开销而在其他情况下需要真正的互斥时,能够null_mutex
(当前是boost::interprocess::null_mutex
)非常有用。
我试图使用新的c ++ 11 mutex
类,但我看不到null_mutex
等价物 - 这让我感到困惑..
是的,我知道实施它是微不足道的(或者我可以继续使用增强,但在可能的情况下,我试图坚持标准,似乎是一个小小的遗漏?)
通过创建Lockable
概念的“null”实现,您可以相当简单地做到这一点:
struct null_mutex
{
void lock() {}
void unlock() noexcept {}
bool try_lock() { return true; }
};
这适用于std :: lock_guard:
null_mutex mux;
std::lock_guard<null_mutex> guard(mux);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.