Qu'est-ce qu'un pool de threads Java et pourquoi est-il utilisé?

Cet article sur le pool de threads en Java vous aidera à comprendre ce qu'est un pool de threads et quels sont les avantages et les inconvénients de l'utilisation du pool de threads

Chaque fois que vous créez une application serveur, la demande de création d'un nouveau se pose à chaque fois qu'une demande arrive. Cette nouvelle demande est le nouveau thread qui est créé. Ce tutoriel circulerait dans le pool de threads en Java, décrivant ses avantages et ses inconvénients suivis de la définition!



Les sujets abordés dans cet article sont:



Commençons!

system.exit (1) java

Qu'est-ce que le pool de threads en Java?

Comme son nom l'indique, le pool de threads en Java est en fait un pool de . Dans un sens simple, il contient un groupe de threads de travail qui attendent que le travail soit accordé. Ils sont réutilisés dans tout le processus.



Dans un pool de threads, un groupe de threads de taille fixe est créé. Chaque fois qu'une tâche doit être accordée, l'un des threads est retiré et affecté à cette tâche par le fournisseur de services, dès que le travail est terminé, le thread est renvoyé au pool de threads. Le pool de threads est de préférence utilisé car les threads actifs consomment des ressources système, lorsque JVM crée trop de threads en même temps, le système peut manquer de mémoire. Par conséquent, le nombre de threads à créer doit être limité. Par conséquent, le concept du pool de threads est préféré!

Passons à notre prochain segment qui énonce les risques liés au pool de threads en Java.

Risque dans le pool de threads Java

Il y a quelques risques lorsque vous traitez avec le pool de threads, comme



  • Fuite de fil: Si un thread est supprimé du pool pour effectuer une tâche mais n'y est pas retourné lorsque la tâche est terminée, une fuite de thread se produit.
  • Impasse: Dans le pool de threads en cours d'exécution, le thread attend la sortie du bloc le thread en attente dans la file d'attente en raison de l'indisponibilité du thread pour l'exécution, il y a un cas de blocage.
  • Thrashing de ressources: Un plus grand nombre de threads que le nombre optimal requis peut entraîner des problèmes de famine conduisant à une destruction des ressources.

Passons maintenant aux avantages du pool de threads.

Avantages d'un pool de threads

Certains des avantages de l'utilisation du pool de threads lors de la programmation en Java sont:

  • Meilleure performance
  • Gain de temps
  • Pas besoin de créer un fil encore et encore
  • Facile d'accès
  • Utilisation en temps réel

Voyons maintenant les inconvénients du pool de threads.

Inconvénients du pool de threads

Certains des inconvénients de l'utilisation du pool de threads lors de la programmation sont:

fonction fibonacci c ++
  • Il n'y a aucun contrôle sur la priorité et l'état du thread avec lequel vous travaillez.
  • Il n'y a pas d'identité stable donnée au thread, aucune trace ne peut être conservée.
  • Lorsqu'il existe une forte demande pour le pool de threads, le processus peut être supprimé.
  • Le pool de threads ne peut pas fonctionner correctement lorsque deux threads travaillent en parallèle.
  • Il existe plusieurs situations dans lesquelles le code d'application peut être affecté par un autre code d'application, malgré une isolation robuste de l'application.

Permettez-moi maintenant de vous présenter la partie implémentation du pool de threads. Ça y est!

Implémentation d'un pool de threads

Consultez le code ci-dessous pour comprendre le concept de pool de threads en Java

Code:

package MyPackage import java.util.concurrent.LinkedBlockingQueue classe publique ThreadPool {private final int nThreads private final PoolWorker [] threads private final LinkedBlockingQueue queue public ThreadPool (int Threads) {this.nThreads = Threads queue = new LinkedBlockingQueue () threads = new PoolWorker [Threads] pour (int i = 0 i

Cela nous amène à la fin de cet article «Thread Pool in Java». J'ai couvert l'un des sujets les plus fondamentaux et les plus importants de Java. J'espèrevous êtes clair avec tout ce qui a été partagé avec vous dans cet article.

Assurez-vous de pratiquer autant que possible et inversez votre expérience.

Vérifiez par Edureka, une entreprise d'apprentissage en ligne de confiance avec un réseau de plus de 250 000 apprenants satisfaits répartis dans le monde entier. Nous sommes là pour vous aider à chaque étape de votre voyage, pour devenir une autre question d'entrevue java, nous proposons un programme conçu pour les étudiants et les professionnels qui souhaitent devenir développeur Java.

qu'est-ce que l'écho en php

Vous avez une question pour nous? Veuillez le mentionner dans la section des commentaires de ce 'Thread Pool in Java' article et nous vous répondrons dans les plus brefs délais.