我编写了一个多线程程序,它通过大量浮点运算进行一些 CPU 繁重的计算。更具体地说,它是一个逐帧比较动画序列的程序。即,它将动画 A 中的帧数据与动画 B 中的所有帧进行比较,针对动画 A 中的所有帧。我对不同的动画并行执行这种密集操作,因此程序可以处理 AB 对、BC 对和 CA 对在平行下。该程序正在使用 QtConcurrent 和一个“映射”函数,该函数将一个带有运动的容器映射到一个函数上。QtConcurrent 为我管理线程池,我正在使用英特尔四核处理器,因此它产生 4 个线程。
现在,问题是我的进程破坏了我的 CPU。使用是 100% 不变的,如果我在足够大的动作集上运行我的程序(非分页区域中的页面错误),我实际上会出现蓝屏死机。我怀疑这是因为我的电脑超频了。但是,这可能是因为我编写程序的方式吗?我用来测试机器稳定性的一些非常密集的基准测试工具从未让我的电脑崩溃。有什么方法可以控制我的程序如何使用我的 CPU 来减少负载?还是我误解了我的问题?