10個を超える追加のスレッドを作成することは望ましくないというのは本当ですか?例:
for(int i=0; i<100; i++) {
new Thread() {
public void run() {
// something
}
}.start();
}
100個のスレッドを作成して開始します。それは良くありませんよね?
更新>すべてのスレッドが何かをダウンロードしてバンドルに入れています
10個を超える追加のスレッドを作成することは望ましくないというのは本当ですか?例:
for(int i=0; i<100; i++) {
new Thread() {
public void run() {
// something
}
}.start();
}
100個のスレッドを作成して開始します。それは良くありませんよね?
更新>すべてのスレッドが何かをダウンロードしてバンドルに入れています
必要以上のスレッドを作成することは望ましくありません。
もちろん、100個のスレッドが必要な場合は、それを作成するのが適切です。
どこit is undesirable to create more than 10 additional threads
から来たのかわからない。Javaプロセスは10,000スレッドを処理できます。
10スレッドのスレッドプールを使用し、それらに正しいRunnableを渡すと、より簡単かつ高速になります。
コンテキストに完全に依存します。あなたがしているほとんどの仕事がCPUバウンドであるなら、あなたが実際に100コアを持っていない限り、おそらく大きな違いをもたらさないか、実際に事態を悪化させません(コンテキストスイッチングなど)。I / Oタスクに多くの時間が費やされている場合は、スレッド化が有益な場合があります。あなたは本当にいくつかのベンチマークを行う必要があります。
おそらく必要なのは、非常に多くのスレッドを作成するのではなく、 ThreadPoolです。
例えば:
ExecutorService executor = Executors.newFixedThreadPool(4);
executor.submit(YourRunnable);
スレッドプールをもっと調べてください-それらはあなたの人生を楽にします。