Dans cet article, nous allons apprendre les aspects ci-dessous des impasses en Java:
Alors commençons!
Qu'est-ce qu'une impasse?
Deadlock décrit une situation où deux autres threads tentent d'accéder à la même ressource simultanément et, par conséquent, personne n'obtient la ressource et est finalement bloqué pour toujours.
Quand et où une impasse peut se produire
En Java, le scénario de l'impasse ne peut se produire que dans l'environnement multithread où plus d'un thread s'exécute en même temps. De plus, un mot-clé synchronisé peut provoquer une impasse en Java.
D'après la figure ci-dessus, nous pouvons observer que Thread1 attend que Thread2 divulgue les ressources et vice versa.
Exemples de blocage
Voyons l'exemple donné ci-dessous pour une profonde compréhension de la façon dont une impasse se produit en Java:
classe publique daadlockexampleDans cet exemple, nous avons deux threads thread1 et thread2, les deux threads commencent et appellent la méthode run ().
Voici la sortie de l'extrait ci-dessus:
De l'extrait ci-dessus, il est clair que les deux fils se verrouillaient les uns les autres.
Comment empêcher une impasse en Java
Vous trouverez ci-dessous la liste des préventions qui peuvent être adoptées pour éviter une impasse en Java:
Conclusion
Deadlock décrit une situation où deux autres threads tentent d'accéder à la même ressource simultanément et, par conséquent, personne n'obtient la ressource et est finalement bloqué pour toujours. En Java, une impasse ne se produit que dans l'environnement multithread où plus d'un thread s'exécute en même temps. De plus, un mot-clé synchronisé peut provoquer une impasse en Java. En Java, une impasse ne peut pas être complètement résolu cependant, il peut être évité en adoptant certaines précautions / règles nécessaires.g. Éviter l'utilisation de serrures inutiles, de serrures imbriquées, etc.
Cet article présente un aperçu détaillé de ce qui est des impasses en Java, comment se produisent les impasses et comment éviter les impasses en Java.