【发布时间】:2015-09-28 16:03:20
【问题描述】:
我对 Wiki 上对监视器的描述感到很困惑,它说:
监视器由互斥体(锁)对象和条件变量组成。 条件变量基本上是一个线程容器,它们是 在一定条件下等待。监视器提供了一种机制 线程暂时放弃独占访问以等待 在重新获得独占访问权之前需要满足一些条件 继续他们的任务。
我的问题是:这似乎正是 cond.wait(locker, [](){return !q.empty();}); 在 C++ 中所做的。为什么这叫监视器?他们是一样的吗?谢谢!
mutex mu;
condition_variable cond;
...
unique_lock<mutex> locker(mu);
cond.wait(locker, [](){return !q.empty();});
【问题讨论】:
标签: c++ multithreading concurrency mutex monitor