私は問題から始めて、解決策を見つけようとします。
あなたがしている方法を開始する場合、解決する問題を探しているソリューションを持つことができ、不適切に使用する可能性があります。
スレッドプールの使用を考えることができない場合は、使用しないでください。 ;)
人々がよくやっている間違いは、現在多くのCPUを持っているため、すべてがこのような理由で使用されていると仮定することです。そのようなディスクスペースがたくさんあると言って、私はそれをすべて使う方法を見つけなければなりません。あなたがバウンド忙しいCPUを持っている場合は
スレッドプールを使用するための良い理由は、(むしろ、一つのスレッドで、ノンブロッキングIOを使用するよりも)
をCPUバウンドプロセスのパフォーマンスとIOのシンプルバインドのプロセスを改善することです独立して実行できるタスクを実行するプロセスであり、スレッドプールの良いユースケースです。
注:スレッドプールにはスレッドが1つしかないことがよくあります。これらには特定の静的ファクトリがあります。単純なバックグラウンドワーカーが必要な場合は、これがオプションになる可能性があります。
注2:よくある間違いは、CPUバインドされたタスクが数百または数千のスレッドで最適に動作すると仮定することです。最適なスレッド数は、コアまたはコアの数になります。これらのすべてがビジー状態になると、追加のスレッドでオーバーヘッドが追加されることがあります。
-1 ...それは、学習を理解するのではなく、 – moodywoody