如何减少cpu密集度呢?

时间:2016-03-23 16:56:28

标签: c++11 boost boost-thread task-queue

我有一个在循环中运行并执行任务的线程。

outTask::Task* task;
while (!m_out_stop) {
    println("abc");
    while (m_outQueue.pop(task)) {
        println("123");
        task->execute();
    }
}

如何降低CPU密集度?我可以让线程在每个任务之间休眠,但这会导致延迟,因此不是理想的解决方案。

聚苯乙烯。打印语句用于调试目的。

1 个答案:

答案 0 :(得分:0)

如果您在Windows中工作,可以使用SetThreadPriority:

outTask::Task* task;
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_BELOW_NORMAL);
while (!m_out_stop) {
.....

它使你的工作线程运行速度最慢,但不能阻止它