В чем разница между notify_all () и notify_one () в std :: condition_variable?

В настоящее время я реализую многопоточный проект с использованием std :: thread в C ++ 11. Я использую std :: condition_variable для синхронизации потоков. Более подробно, одна функция-получатель вызывает функцию-член wait () для std :: condition_variable для ожидания задачи из глобальной очереди задач, другая функция-производитель генерирует и помещает задачи в очередь. Но я не знаю разницы между notify_all () и notify_one () функциями-членами std :: condition_variable . Какую функцию мне следует использовать в функции производителя? Спасибо!

36
задан Björn Pollex 26 January 2012 в 09:01
поделиться