条件変数で待機操作を実行すると、すぐに返されることに気付きました。その結果、次のダミー コードを実行すると、1 つの CPU が 100% ループで使用されます。
int main(void) {
boost::condition_variable cond;
boost::mutex mut;
bool data_ready = false;
boost::unique_lock<boost::mutex> lock(mut);
while (!data_ready) {
cond.wait(lock);
}
return 1;
}
cond.wait(lock)
への呼び出しにより、スレッドが CPU を消費していない状態になると予想されますが、そうではありません。
では、どこに問題があるのでしょうか? 上記のコードは、ブーストのドキュメントから取得しました。
(ブースト1.44を使用しています)
ありがとう、
ギヨーム