将std :: condition_variable与std :: timed_mutex一起使用

时间:2017-10-27 17:42:46

标签: c++ concurrency stl

有可能吗?我想使用timed_mutex而不是带有condition_variable的常规互斥锁,但它不会编译并查看源代码

  void
  wait(unique_lock<mutex>& __lock, _Predicate __p)
  {
while (!__p())
  wait(__lock);
  }

(缩写由libc ++作者提供,真的吗?)

所以看起来它实际上仅限于直接互斥,而不是定时互斥。但为什么??

1 个答案:

答案 0 :(得分:2)

是的,std::conditional_variable仅限于std::unique_lock<std::mutex>。但是,对于具有std::condition_variable_any的任何内容,您可以使用更通用的compatible interface