Je viens de commencer à m'exercer à utiliser des pools de threads. Je crée une application de banque serveur-client en Java, j'ai parcouru une partie de la documentation Oracle et je pense à utiliser un pool de threads en cache. Mais j'ai effectué quelques tests de comptage et il m'a semblé que le pool de threads fixes était plus rapide. Le pool de threads mis en cache a pris du retard et semble créer trop de threads inutiles. (ou peut-être que je fais quelque chose de mal ici).Java: quel genre de ThreadPool devrais-je utiliser ici?
Ma question est, dans une situation réelle, qui serait plus efficace? Ou y at-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, sont des fils inutilisés réutilisés automatiquement (au lieu de créer de nouvelles), ou est-il autre chose que je dois ajouter pour s'assurer que cela arrive?
Si vos tâches sont liées à la CPU, vous pouvez utiliser un pool fixe correspondant au nombre de processeurs que vous avez. –