Maison  >  Article  >  Java  >  Comment le pool de threads est implémenté

Comment le pool de threads est implémenté

王林
王林avant
2020-02-06 18:26:543524parcourir

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer
Article précédent:Qu’est-ce que le printemps ?Article suivant:Qu’est-ce que le printemps ?