Я занимаюсь разработкой приложения для Windows на C ++ в VS2017
Я должен выполнить некоторые данные (хранящиеся в очереди) в потоке, но только когда элементы существуют в очереди.
thread
{
if(!queue.empty()
{
//process data and pop out
}
}
Но есть вероятность, что очередь может опустеть, а иногда и получить данные, так как я могу добиться этого?
Я пытался запустить весь цикл в потоке, но это неэффективно, и оптимизированное рекламное приложение через некоторое время перестает отвечать на запросы
thread
{
while(true)
{
if(!queue.empty()
{
//process data and pop out
}
}
}
Пожалуйста, поддержите и помогите узнать, как это можно сделать эффективно?