私は、多くの浮動小数点演算で CPU を大量に使用する計算を行うマルチスレッド プログラムを作成しました。より具体的には、アニメーションシーケンスをフレームごとに比較するプログラムです。つまり、アニメーション A のすべてのフレームについて、アニメーション A のフレーム データをアニメーション B のすべてのフレームと比較します。異なるアニメーションに対してこの集中的な操作を並行して実行するため、プログラムは AB ペア、BC ペア、および CA ペアで作業できます。並行して。このプログラムは、QtConcurrent と、動きのあるコンテナーを関数にマップする「マップ」関数を使用しています。QtConcurrent はスレッド プールを管理します。Intel クアッド コア プロセッサで作業しているため、4 つのスレッドが生成されます。
ここでの問題は、プロセスが CPU を破壊することです。使用率は 100% 一定であり、プログラムを十分なモーション セットで実行すると、実際にブルー スクリーン オブ デスが発生します (非ページ領域でのページ フォールト)。これは、コンピューターがオーバークロックされているためだと思われます。しかし、これは私のプログラムのコーディング方法によるものでしょうか? マシンの安定性をテストするために使用したいくつかの非常に集中的なベンチマーク ツールでは、PC がクラッシュすることはありませんでした。プログラムが CPU を使用して負荷を軽減する方法を制御する方法はありますか? それとも、私は自分の問題を誤解していますか?