【问题标题】:trouble understanding this boost condition variable example难以理解这个提升条件变量示例
【发布时间】:2014-04-14 03:07:10
【问题描述】:

在以下示例中:http://en.cppreference.com/w/cpp/thread/condition_variable 是什么阻止了 main() 线程在 worker_thread 到达 cv.wait() 之前调用 cv.notify_one()?在我看来,如果 main() 线程提前通知,worker_thread 可能会永远等待。

我希望在“cv.wait()”周围看到“while (!ready)”。

【问题讨论】:

    标签: c++ multithreading boost condition-variable


    【解决方案1】:

    您不需要 C++11 的包装循环,因为 wait 的实现已经提供了它:

    http://en.cppreference.com/w/cpp/thread/condition_variable/wait

    也就是说,如果 lambda 表达式(此处为 []{return ready;})计算结果为 truewait 将立即返回。

    【讨论】:

      猜你喜欢
      • 2014-12-31
      • 2016-01-14
      • 2016-06-02
      • 1970-01-01
      • 1970-01-01
      • 2022-12-13
      • 2011-10-02
      • 1970-01-01
      • 2023-03-04
      相关资源
      最近更新 更多