固定数のスレッドを使用して、潜在的に膨大な数のリスト要素を処理するにはどうすればよいですか?固定数のスレッドを持つリストアイテムを処理する
ExecutorService threadPool =
Executors.newFixedThreadPool(threadsNumber);
for (String url : urlList) {
MyThread thread = new MyThread(url);
threadPool.execute(thread);
}
threadPool.shutdown();
threadPool.awaitTermination(Long.MAX_VALUE, TimeUnit.MILLISECONDS);
このコードは私の正しい出力を返す代わりに、反復ごとに新しいスレッドを作成する私は、反復する前にスレッドの数を作成し、それらを再利用したいと思います:私はExecutorServiceのを使用して解決策を持っています。これどうやってするの?
ご質問はありません。私は、ループの外側または内側にスレッドを作成するかどうかに違いは見られません。なぜあなたはそれが違いをもたらすと思いますか? – Ravi
ループ内のスレッドの作成は、反復リストの要素の数によって異なります。リストに多数の要素が含まれている場合は、多くのスレッドを作成する必要があります。 'urlList'のいくつかの要素の影響を受けないループの前にスレッドを作成することで回避したいと思います。 – MoBi
スレッド番号のみを作成します。 – Ravi