パフォーマンスの問題を分析しています。最大で 500 の作業スレッドが存在する可能性があり、CPU 使用率はそれほど高くありません。コンテキストの切り替えによって CPU 使用率が高くなる可能性はありますか? つまり、CPU 使用率が高くないため、ここではコンテキスト スイッチ (500 スレッド) は問題になりません。
質問する
3460 次
2 に答える
0
はい、コンテキストの切り替えによりパフォーマンスの問題が発生する可能性がありますが、適切な設計により、通常、これが問題になることはありません。一般的に言えば、利用可能なコアよりも多くのスレッドを一度に「実行可能」にすることは、非常に効率的ではありません: 複数のスレッドが何かの発生をブロックしている場合 (I/O が一般的な例です)、パフォーマンスを向上させることができます。ただし、多数のジョブを完了しようとしているだけの場合は、通常、コアごとに一度に 1 つのタスクだけを実行する方が効率的です (コンテキスト スイッチが少なく、メモリ オーバーヘッドが少ないなど)。が便利な理由ExecutorService
は次のとおりです。これにより、すべてのジョブをキューにディスパッチでき、スレッド化の仕組みについて心配する必要がなくなります。
于 2013-09-22T10:02:50.217 に答える