メインスレッドと診断スレッドを備えたプログラムがあります。メイン スレッドは基本的に、while(1)
さまざまなタスクを実行するループです。これらのタスクの 1 つは、診断エンジンにシステムに関する情報を提供し、後で (次のループで) 再度チェックして、対処すべき問題がないかどうかを確認することです。メイン ループの反復には、0.1 秒以上かかることはありません。すべてが順調であれば、診断エンジンはほとんど時間をかけずに答えを返します。ただし、問題がある場合、診断エンジンが問題を特定するのに数秒かかることがあります。このため、診断エンジンは新しい情報を受け取るたびに、新しい診断スレッドを起動します。
私たちが抱えている問題は、診断スレッドがメイン スレッドから時間を盗んでいることです。事実上、2 つのスレッドがあっても、診断スレッドがまだ回転しているため、メイン スレッドは思うように頻繁に実行できません。
Boost スレッドを使用して、スレッドが別のスレッドに移動する前に実行できる時間を制限することは可能ですか? また、ここで重要なのは、使用している診断アルゴリズムがブラックボックスであるため、その中にスレッド コードを配置できないことです。ありがとう!