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

using std::condition_variable with std::timed_mutex

本文关键字:std 一起 mutex variable condition timed      更新时间:2023-10-16

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

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

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

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

是的,std::conditional_variable仅限于std::unique_lock<std::mutex> .但是,您可以将更通用的std::condition_variable_any与具有兼容接口的任何内容一起使用。