-1

私のアプリケーションでは、継続的に実行されている While(True) { } ループがあります。これにより、CPU 使用率が 100% になります。この while ループでさえ、特定の関数を実行するために複数のスレッドから呼び出されるため、CPU は 100% で実行されます。

コレクションが空のように、いくつかの条件に従ってスリープを設定しましたが、コレクションがいっぱいの場合、CPUの使用量は減りません。

While(true)
{
if(condition)
Thread.sleep(30);//Under some condition
//Process data on collection
//Set sleep condition
}

このループを制御し、他のプロセスとスレッドが機能するようにするにはどうすればよいですか。

4

1 に答える 1

0

if の後に sleep を置きたいと思うでしょう:

while(true) 
{
   if (condition) {
      //treat data
   }
   sleep(30)
}

今のところ、リストが空の場合にのみスリープ状態になり、リストがいっぱいになるとアクティブな待機状態に戻るため、100% CPU

于 2013-10-25T04:52:40.643 に答える