さて、私はある種のキューで作業しようとしています。std :: queueからデータをポップするための専用のIOスレッドがありますが、問題は、 100%のCPU定数チェックを防ぐためにSleep()を使用していることです。そしてもちろん、std::queueにアイテムを追加する他のスレッド。
スレッドが休止状態になり、std :: queueが空でない場合にのみ開始するようにイベントを作成するにはどうすればよいですか?
IOスレッド
Sleep(100);
while (!myqueue.empty())
{
//process data FIFO
myqueue.pop(); //pop out and continue
}
どうもありがとうございました!ああ、これはc++11またはc++03の場合、問題ではありません-Windowsの場合。