我有一个在循环中运行并执行任务的线程。
outTask::Task* task;
while (!m_out_stop) {
println("abc");
while (m_outQueue.pop(task)) {
println("123");
task->execute();
}
}
如何降低CPU密集度?我可以让线程在每个任务之间休眠,但这会导致延迟,因此不是理想的解决方案。
聚苯乙烯。打印语句用于调试目的。
答案 0 :(得分:0)
如果您在Windows中工作,可以使用SetThreadPriority:
outTask::Task* task;
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_BELOW_NORMAL);
while (!m_out_stop) {
.....
它使你的工作线程运行速度最慢,但不能阻止它