Java différence entre les threadpool et prévue threadpool
J'ai un fixe pool de thread qui s'exécute 7 threads simultanés à tout moment (avec une file d'attente), et je veux le transformer en un prévue le pool de thread qui s'exécute uniquement 7 simultanée de l'emploi mais peut file d'attente/calendrier plus.
La lecture de la documentation n'a pas vraiment m'aider..
public static ExecutorService newFixedThreadPool(int nThreads)
Crée un pool de threads qui réutilise un ensemble fixe de threads d'exploitation hors
a partagé la surabondance de la file d'attente. Si un thread se termine en raison d'une défaillance
au cours de l'exécution avant l'arrêt, un nouveau prendra sa place si
nécessaires à l'exécution des tâches suivantes.Paramètres:
nThreads - le nombre de threads du pool Retourne:
le nouveau pool de threads
public static ScheduledExecutorService newScheduledThreadPool(int
corePoolSize)Crée un pool de threads qui peuvent planifier des commandes à exécuter après une
retard, ou à exécuter périodiquement.Paramètres:
corePoolSize - le nombre de threads à garder dans la piscine, même si ils sont en veille. Retourne:
nouvellement créé, prévue pool de threads
Ce que je ne comprends pas, c'est, sont corePoolSize et nThreads la même chose? Est prévu un pool de threads vraiment un sous-ensemble d'un fixe pool de threads, ce qui signifie que je peux utiliser prévue pool de threads fixe de pool de threads qui peuvent file d'attente retardée tâches?
Je suis actuellement en utilisant un FixedThreadPool, mais voudrait être en mesure de planifier des tâches qu'après un certain délai.. par exemple. planifier des tâches d'une heure à partir de maintenant, par exemple. ainsi que d'être en mesure d'exécuter immidiately comme je le fais aujourd'hui.
Il peut avoir été appelé un des Exécuteurs testamentaires.newFixedScheduledThreadPool(n), mais c'est beaucoup de lettres :/
OriginalL'auteur Mohamed Nuur | 2011-05-17
Vous devez vous connecter pour publier un commentaire.
Oui, ils sont fondamentalement la même chose, juste avec ajout de la fonctionnalité de planification. Le ScheduledThreadPoolExecutor s'étend même à l'implémentation par défaut de la ExecutorService (ThreadPoolExecutor).
nThreads et corePoolSize est le nombre de fils est engendré. Pour une installation fixe d'exécuteur testamentaire, c'est toujours la même. Avec les autres de la mise en œuvre, il varie entre min (corePoolSize) et max (maxPoolSize).
OriginalL'auteur mhaller
Oui, il fonctionne de cette manière dans JDK5-6. Alors qu'en principe le ScheduledExecutorService interface est muet sur la question de la taille du pool, de la mise en œuvre effective de il utilisé dans le JDK, utilise un fixe piscine:
Classe ScheduledThreadPoolExecutor
Évidemment, cela ne peut être vrai si vous utilisez une mise en œuvre différente de ScheduledExecutorService fourni par une application ou d'un fournisseur différent.
OriginalL'auteur Affe
Oui, ils sont exactement la même chose à l'égard à la taille du pool de threads: ils en fin de compte à la fois appel la même ThreadPoolExecutor constructeur.
OriginalL'auteur Peter Knego
La newScheduledThreadPool méthode est utilisée pour créer un pool de threads exactement n fils, qu'ils sont en veille ou en cours d'exécution. L'argument int spécifie le nombre de threads.
La newFixedThreadPool méthode est pas utilisé pour créer un pool de threads de exactement n fils, qu'ils sont en veille ou en cours d'exécution. Fixe pool de threads changements dans la taille, en fonction du nombre de tâches actives.
OriginalL'auteur Koray Tugay