一、条件变量condition_variable
:
std::condition_variable
实际上是一个类,是一个和条件相关的类,条件达成与否决定该类对象的值。
std::condition_variable my_cond;//生成一个条件变量对象
二、wait()
与notify_one()
函数的搭配使用:
wait()
函数使用:
wait()
决定线程是否阻塞,其第二个参数默认为false
。- 当第二个参数为
true
时,wait()
直接返回并此线程继续执行。 - 当第二个参数的值为
false()
时,wait()
将解锁互斥量,并将此线程阻塞在此处。直到其他线程调用notify_one()
。
my_cond.wait(myLock, [this] {
if (!myQueue.empty())
return true;
return