c++ - 将 std::condition_variable 与 std::timed_mutex 一起使用

标签 c++ concurrency stl

这可能吗?我想使用 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 任何有 compatible interface 的东西.

关于c++ - 将 std::condition_variable 与 std::timed_mutex 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46980719/

相关文章:

java - 将多个线程与 RandomAccessFile 一起使用有助于提高性能吗?

c++ - 如何通过 C++ 宏调用编译时错误?

c++ - 右值引用上的 std::vector<T>::emplace_back

c# - ConcurrentBag 与 List 的性能比较

java - 当一个线程在尝试获取锁后被挂起时,是否总是有上下文切换?

c++ - 格式化读取文件数据C++

c++ - 如何在模板类中使用 std::map 迭代器?

c++ - 放置一个 std::pair

c++ - 什么时候显式调用 C++ 析构函数?

c++ - 将函数对象指针传递给接受指向 std::function 的指针的函数