1

10個を超える追加のスレッドを作成することは望ましくないというのは本当ですか?例:

for(int i=0; i<100; i++) {
    new Thread() {
        public void run() {
            // something
        }
    }.start();
}

100個のスレッドを作成して開始します。それは良くありませんよね?

更新>すべてのスレッドが何かをダウンロードしてバンドルに入れています

4

4 に答える 4

6

必要以上のスレッドを作成することは望ましくありません。

もちろん、100個のスレッドが必要な場合は、それを作成するのが適切です。

どこit is undesirable to create more than 10 additional threadsから来たのかわからない。Javaプロセスは10,000スレッドを処理できます。

于 2012-08-06T13:40:03.087 に答える
2

10スレッドのスレッドプールを使用し、それらに正しいRunnableを渡すと、より簡単かつ高速になります。

于 2012-08-06T13:39:44.507 に答える
1

コンテキストに完全に依存します。あなたがしているほとんどの仕事がCPUバウンドであるなら、あなたが実際に100コアを持っていない限り、おそらく大きな違いをもたらさないか、実際に事態を悪化させません(コンテキストスイッチングなど)。I / Oタスクに多くの時間が費やされている場合は、スレッド化が有益な場合があります。あなたは本当にいくつかのベンチマークを行う必要があります。

于 2012-08-06T13:39:13.723 に答える
1

おそらく必要なのは、非常に多くのスレッドを作成するのではなく、 ThreadPoolです。

例えば:

 ExecutorService executor = Executors.newFixedThreadPool(4);
 executor.submit(YourRunnable);

スレッドプールをもっと調べてください-それらはあなたの人生を楽にします。

于 2012-08-06T15:00:15.537 に答える