繁体   English   中英

std :: condition_variable的notify_all()和notify_one()有什么区别?

[英]What's the difference between notify_all() and notify_one() of std::condition_variable?

目前,我正在使用C ++ 11中的std::thread实现一个多线程项目。 我使用std::condition_variable来同步线程。 详细地说,一个消费者函数调用std::condition_variable wait()成员函数来等待来自全局任务队列的任务,另一个生成器函数生成并将任务放入队列。 但我不知道std::condition_variable notify_all()notify_one()成员函数之间的区别。 我应该在生产者函数中使用哪个函数? 谢谢!

例如,如果条件变量上有十个线程被阻塞,则notify_one()将仅解除阻塞一个线程,而notify_all()将解除阻塞所有线程。 在您的情况下,您将需要使用notify_one()因此您不会唤醒没有任何工作等待它们的线程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM