J'ai une piscine de fil de 8 et je le donne environ 100 cas de classe implémentant Callable
-à-dire WorkerThread
Quand exactement callable passé à un ExecutorService disponible pour la collecte des ordures
for (List<String> s : listOfLists) {
Future<?> future = executor.submit(new Worker(hugeList));
}
for (Future<?> f : futures) {
try {
String result = (String) f.get();
} catch (InterruptedException e) {
logger.error("Interrupted", e);
} catch (ExecutionException e) {
logger.error("Execution exception", e);
}
}
executor.shutdown();
Quand les instances est passé à l'exécuteur peut-il être admissible à la collecte des ordures? Dès que le fichier f.get() est exécuté, ils sont éligibles pour la récupération de place ou tous les new Worker(hugeList)
restent en mémoire jusqu'à ce que le executor.shutdown()
soit appelé.
Chaque new Worker()
est vraiment grand et je voudrais qu'ils soient ramassés après leur thread respectif est exécuté. Mais je ne suis pas sûr quand ils sont éligibles pour cela.
Cela a beaucoup de sens. Merci beaucoup. –