Comment traiter un nombre potentiellement énorme d'éléments de liste en utilisant un nombre fixe de threads? J'ai une solution à l'aide ExecutorService:Traitement d'éléments de liste avec un nombre fixe de threads
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);
Ce code me renvoie le résultat correct, mais au lieu de créer un nouveau thread à chaque itération je voudrais créer un certain nombre de threads avant l'itération et de les réutiliser. Comment puis-je faire ceci?
Pas votre question. Je ne vois aucune différence, soit vous créez un fil à l'extérieur ou à l'intérieur de la boucle. Pourquoi pensez-vous que cela fera la différence? – Ravi
La création de threads à l'intérieur d'une boucle dépend du nombre d'éléments dans la liste d'itération. Si la liste contient un grand nombre d'éléments, vous devrez créer beaucoup de threads. Je voudrais l'éviter en créant des threads avant qu'une boucle ne soit affectée par un certain nombre d'éléments dans 'urlList' – MoBi
Il ne créera que le nombre de thread, qui est spécifié – Ravi