windows c++ thread waiting on queue data-push

Моя программа настроена следующим образом:
Существует потокобезопасный класс очереди, один поток толкает данные на него, сидя в бесконечном цикле, а второй поток выталкивает данные из него, сидя в бесконечном цикле. Я пытаюсь думать о том, как использовать события Windows, или какой-то другой механизм, чтобы сделать поток_1 (ниже), ждать в бесконечном цикле и только итерацию, когда глубина очереди больше или равна 1.

class thread-safe_Queue
{
 public:
  push();
  pop();
};

DWORD thread_1()
{
 while(1)
 {
  // wait for thread-safe queue to have data on it
  // pop data off
  // process data
 }
}

DWORD thread_2()
{
 while(1)
 {
  // when data becomes available, push data onto thread-safe queue
 }
}
6
задан rossb83 9 September 2011 в 13:32
поделиться