std::thread中的无限while循环会提高CPU使用率
我std::thread在我的 C++ 程序中执行了一个无限 while 循环。这样做时,我的程序使用了 45% 的 CPU(根据任务管理器)。当使用 '限制' 循环时std::this_thread::sleep_for(std::chrono::milliseconds(1)),CPU 使用率下降到 12%' 但是,当然,这个解决方案远非最佳,特别是考虑到我正在开发游戏的事实。如何在不休眠线程的情况下降低 CPU 使用率,因为只要 if 条件(位于循环内)为真,我就需要它可用?
回答
您应该让您的线程等待条件变量 ( std::condition_variable) 并在更改标志时通知它。