有可能吗?我想使用timed_mutex而不是带有condition_variable的常规互斥锁,但它不会编译并查看源代码
void
wait(unique_lock<mutex>& __lock, _Predicate __p)
{
while (!__p())
wait(__lock);
}
(缩写由libc ++作者提供,真的吗?)
所以看起来它实际上仅限于直接互斥,而不是定时互斥。但为什么??
答案 0 :(得分:2)
是的,std::conditional_variable
仅限于std::unique_lock<std::mutex>
。但是,对于具有std::condition_variable_any
的任何内容,您可以使用更通用的compatible interface。