Comment gérer le blocage en Java?



Cet article couvre le concept de blocage en Java avec un exemple qui montre comment les threads d'un programme multithread sont bloqués.

Prise en charge du langage de programmation Java . Il implique plusieurs threads exécutés simultanément pour le multitâche. Mais dans certains cas ou en raison de certaines lacunes, les threads se retrouvent à jamais dans l'état d'attente. Dans cet article, nous comprendrons la condition de blocage dans et différentes manières de l'éviter. Voici les sujets abordés dans ce blog:

Qu'est-ce que Deadlock en Java?

Le blocage en Java est une condition dans laquelle deux ou plusieurs threads sont bloqués pour toujours, en attente l'un de l'autre.





Cela se produit généralement lorsque plusieurs threads ont besoin des mêmes verrous mais les obtiennent dans des ordres différents. en Java souffre de la situation de blocage en raison du mot clé synchronized.

Cela provoque le blocage du thread en cours d'exécution en attendant le verrou, ou le moniteur, associé au objet .



Impasse à Java - Edureka

Exemple de blocage

classe publique Exemple {public static void main (String [] args) {final String r1 = 'edureka' final String r2 = 'java' Thread t1 = new Thread () {public void run () {synchronized (r1) {System. out.println ('Thread 1: Locked r1') try {Thread.sleep (100)} catch (exception e) {} synchronized (r2) {System.out.println ('Thread 1: Locked r2')}}} } Thread t2 = new Thread () {public void run () {synchronized (r1) {System.out.println ('Thread 2: Locked r1') try {Thread.sleep (100)} catch (exception e) {} synchronized (r2) {System.out.println ('Thread 2: Locked r2')}}}} t1.start () t2.start ()}}
 Production: Filetage 1: verrouillé r1 Filetage 2: verrouillé r2

Comment éviter les blocages en Java?

Bien qu'il ne soit pas tout à fait possible d'éviter les conditions de blocage, mais nous pouvons suivre certaines mesures ou pointeurs pour les éviter:

est java basé sur c
  • Évitez les verrous imbriqués - Vous devez éviter de donner des verrous à plusieurs threads, c'est la raison principale d'une condition de blocage. Cela se produit normalement lorsque vous attribuez des verrous à plusieurs threads.

  • Évitez les verrous inutiles - Les verrous doivent être donnés aux threads importants. Donner des verrous aux threads inutiles qui provoquent la condition de blocage.



  • Utilisation de Thread Join - Un blocage se produit généralement lorsqu'un thread attend que l'autre se termine. Dans ce cas, nous pouvons utiliser Thread.join avec un temps maximum qu'un thread prendra.

Cela nous amène à la fin de cet article où nous avons découvert le blocage de Java et comment l'éviter. J'espère que vous êtes clair avec tout ce qui a été partagé avec vous dans ce tutoriel.

comment inverser une chaîne python

Si vous avez trouvé cet article sur «Deadlock In Java» pertinent, consultez le 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 et proposer un programme conçu pour les étudiants et les professionnels qui souhaitent devenir développeur Java. Le cours est conçu pour vous donner une longueur d'avance dans la programmation Java et vous former aux concepts Java de base et avancés ainsi que divers comme Hiberner & .

Si vous rencontrez des questions, n'hésitez pas à poser toutes vos questions dans la section commentaires de «Deadlock In Java» et notre équipe se fera un plaisir de vous répondre.