Maison > Java > Javacommencer > le corps du texte

Comment le pool de threads est implémenté

王林
Libérer: 2020-02-06 18:26:54
avant
3539 Les gens l'ont consulté

Comment le pool de threads est implémenté

Le pool de threads a les méthodes d'implémentation suivantes :

Executors fournit actuellement 5 configurations différentes de création de pool de threads :

1 , newCachedThreadPool( )

Il s'agit d'un pool de threads utilisé pour gérer un grand nombre de tâches de travail à court terme. Il présente plusieurs fonctionnalités distinctives : il essaiera de mettre en cache les threads et de les réutiliser lorsqu'aucun thread mis en cache n'est disponible. , il créera un nouveau thread de travail ; si le thread est inactif pendant plus de 60 secondes, il sera terminé et le cache sera supprimé en cas d'inactivité prolongée, ce pool de threads ne consommera aucune ressource ; Il utilise SynchronousQueue en interne comme file d'attente de travail.

Recommandation de didacticiel vidéo : Tutoriel vidéo Java

2. newFixedThreadPool (int nThreads)

Réutiliser le nombre spécifié (nThreads) ) Le thread utilise une file d'attente de travail illimitée derrière lui. Au plus les threads de travail nThreads sont actifs à tout moment. Cela signifie que si le nombre de tâches dépasse le nombre de threads actifs, il attendra que les threads inactifs apparaissent dans la file d'attente de travail ; si le thread de travail se termine, un nouveau thread de travail sera créé pour compenser le nombre de nThreads spécifié.

3. newSingleThreadExecutor()

Sa caractéristique est que le nombre de threads de travail est limité à 1 et qu'il exploite une file d'attente de travail illimitée, il garantit donc que toutes les tâches sont exécutés séquentiellement, au plus une tâche sera active et les utilisateurs ne sont pas autorisés à modifier l'instance du pool de threads, ce qui permet d'éviter de modifier le nombre de threads.

4. newSingleThreadScheduledExecutor() et newScheduledThreadPool(int corePoolSize)

créent un ScheduledExecutorService, qui peut effectuer une planification de travail planifiée ou périodique. La différence est qu'un seul thread de travail. ou Plusieurs threads de travail.

5. newWorkStealingPool(int parallélisme)

Il s'agit d'un pool de threads qui est souvent ignoré. Cette méthode de création n'a été ajoutée que dans Java 8, et ForkJoinPool sera construit. en interne. Grâce à l’algorithme Work-Stealing, les tâches sont traitées en parallèle sans garantir l’ordre de traitement.

Partage d'articles et de tutoriels connexes : Démarrage rapide avec Java

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal