Je viens de commencer à m'exercer à l'utilisation des pools de fils. Je suis en train de créer une application bancaire serveur-client en Java, j'ai parcouru une partie de la documentation d'Oracle et je pense utiliser un pool de threads mis en cache. Mais j'ai effectué quelques tests de comptage et il m'a semblé que le pool de threads fixe était plus rapide. Le pool de threads mis en cache est à la traîne et semble créer trop de threads inutiles. (ou peut-être que je fais quelque chose de mal ici).
Ma question est la suivante : dans une situation réelle, lequel des deux serait le plus efficace ? Ou existe-t-il un autre type de piscine qui serait plus efficace ?
De plus, dans mon test de comptage, j'ai quelques lignes :
ExecutorService executor = Executors.newCachedThreadPool();
for (int i = 0; i < 500; i++) {
Runnable worker = new serv(10000000L + i);
executor.execute(worker);
}
Dans les lignes ci-dessus, les threads inutilisés sont-ils réutilisés automatiquement (au lieu d'en créer de nouveaux), ou dois-je ajouter quelque chose d'autre pour m'en assurer ?