Types de Pools de Threads en java
Quels sont les types de pools de threads en java. J'ai besoin de mettre en œuvre un solide application multi-thread qui utilise une lourde calcul, qui pool de threads dois-je utiliser?
Prendre un regard sur les méthodes de Exécuteurs pour les types de pool de threads. Vous pourriez également être intéressé par ForkJoinPool.
OriginalL'auteur Ankit Zalani | 2013-06-19
Vous devez vous connecter pour publier un commentaire.
Il existe différents pools de threads en java:
Thread unique Exécuteur testamentaire : Un pool de threads avec un seul thread. Donc, les tâches seront exécutées de manière séquentielle. Méthode :
Executors.newSingleThreadExecutor()
Cache Pool de Threads : Un thread du pool, qui crée autant de threads qu'il doit exécuter la tâche en parallèle. Les vieux threads disponibles seront réutilisés pour de nouvelles tâches. Si un fil n'est pas utilisé pendant 60 secondes, il sera résiliée et retirée de la piscine. Méthode :
Executors.newCachedThreadPool()
Fixe Pool de Threads : Un thread du pool, avec un nombre fixe de threads. Si un fil n'est pas disponible pour la tâche, la tâche est de mettre en file d'attente pour une autre tâche à la fin. Méthode :
Executors.newFixedThreadPool()
Prévue Pool de Threads : Un thread du pool, à l'annexe tâche future. Méthode :
Executors.newScheduledThreadPool()
Seul Thread Prévu Piscine : Un pool de threads avec un seul thread à planifier les futures tâches. Méthode :
Executors.newSingleThreadScheduledExecutor()
OriginalL'auteur
Il existe de nombreux types 😉
Il est, par exemple,
ExecutorService
. C'est la "base" de la mise en œuvre qui permet de soumettre des tâches, etc. Vous aurez probablement besoin d'utiliserExécuteurs
pour obtenir un nouveau, puisqu'il a statique usine méthodes pour les scénarios les plus courants.Depuis Java 7 vous avez également
ForkJoinPool
.Également jeter un oeil à
FutureTask
, car c'est un très classe pratique pour construire des threads individuels.OriginalL'auteur fge
Prendre un coup d'oeil à Les exécuteurs.
Chaque commune
ExecutorService
est expliqué et vous aurez probablement de trouver celui qui correspond à vos besoins parmi eux.OriginalL'auteur Jean Logeart
Vous pouvez en lire plus à propos de ThreadPoolExecutors ici:
http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ThreadPoolExecutor.html
Cependant, il pourrait être une bonne idée de regarder les ForkJoinTask API:
http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ForkJoinTask.html
OriginalL'auteur omer schleifer
Cette montre de bonnes animations sur les différentes simultanéité des constructions, peut-être cela vous aidera à choisir
http://sourceforge.net/projects/javaconcurrenta/
OriginalL'auteur Viktor Mellgren