C ++ 11 поток сна / пробуждения без блокировки? - PullRequest
0 голосов
/ 31 октября 2019

Я использую очередь без блокировки между двумя потоками. Один производит данные, другой потребляет данные. Что я хочу сделать, так это то, что, когда очередь пуста, потребительский поток выдаст процессор, пока поток производителя не отправит данные в очередь. Я не могу вызвать sleep (), так как нет способа разбудить спящую нить, я думаю. Я нашел std :: condition_variable, но для этого нужен мьютекс. Поток производителя должен удерживать блокировку, а затем уведомлять потребительский поток о каждом нажатии данных. Есть ли лучший и легкий способ реализовать мою цель?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...