スレッドの使用に関する専門家の助言と意見が必要です。私は2-3スレッドを持つシンプルな "プラグイン" DLLを持っており、それぞれは_beginthreadex()で始まります。C++古いPCでのスレッドCPU使用率の問題
スレッドは次のようになります。
今unsigned __stdcall Thread(void* pArguments)
{
while (true)
{
// do something
Sleep(3000);
}
_endthreadex(0);
return 0;
}
、このスレッドは、しかし、私は古いPCのデュアルコアCPUの持つ上であることを発見した、最も新しいPCの上で期待どおりに動作しますが、高いCPU使用率を持っていません。たとえば、このスレッド方法で2-3のインスタンスを実行すると、CPUが大量に消費されます。私はなぜ自分自身を説明することはできません、そして私は何をすべきか分かりません。
CreateThread()も試しましたが、変更はありません。誰かが私にすべてのPCで同じように動作するスレッドを作成する方法を教えてくれますか?私が何か間違っていると、私に説明してください...
ありがとう!
「スリープ」コールが実際に眠っていますか?それがすぐに返ってきたら、あなたのスレッドを殺して100%CPUでスピンします。 – tadman
なぜあなたはCPUを使いたくないのですか?私はそれが愚かな何もしないスリープスレッドのCPU使用率を最小限にしようとしていることがわかります。 – user463035818
私がテストしたのでSleep()を呼び出すのは、Sleep()に入れたXミリ秒ごとです。 –