【发布时间】:2009-09-11 16:57:40
【问题描述】:
我们设置了一个基于任务的多线程引擎,其中调度程序将任务传递给线程无锁队列。该引擎使用 C++ 和 DirectX 进行渲染,我们使用 boost::thread 创建线程。在窗口模式下,它会随机减速一秒钟左右,然后再加速。这似乎是 Vista 造成的,但我们无法弄清楚如何正确解决它。
我们尝试过的一个似乎有助于解决随机减速的方法是在处理每个任务后让线程休眠一毫秒,但这会导致其他问题,并不是一个很好的解决方案。
【问题讨论】:
-
无锁队列?逃跑!!!!
标签: c++ multithreading windows-vista task windowed