Come gestire il deadlock in Java?



Questo articolo copre il concetto di Deadlock in Java con un esempio che mostra come vengono bloccati i thread in un programma multi thread.

Supporta il linguaggio di programmazione Java . Coinvolge più thread in esecuzione contemporaneamente per il multitasking. Ma in certi casi oa causa di certe mancanze, i fili si trovano per sempre nello stato di attesa. In questo articolo, capiremo la condizione di deadlock in e diversi modi per evitarlo. Di seguito sono riportati gli argomenti discussi in questo blog:

Cos'è Deadlock in Java?

Il deadlock in Java è una condizione in cui due o più thread vengono bloccati per sempre, in attesa l'uno dell'altro.





i metodi has della classe scanner te lo consentono

Questo di solito accade quando più thread necessitano degli stessi blocchi ma li ottengono in ordini diversi. in Java soffre della situazione di deadlock a causa della parola chiave sincronizzata.

Causa il blocco del thread in esecuzione durante l'attesa del blocco, o monitoraggio, associato al file oggetto .



Deadlock in Java - Edureka

Esempio di deadlock

public class Esempio {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) {} sincronizzato (r2) {System.out.println ('Thread 2: Locked r2')}}}} t1.start () t2.start ()}}
 Produzione: Discussione 1: Locked r1 Thread 2: Locked r2

Come evitare deadlock in Java?

Sebbene non sia completamente possibile evitare la condizione di deadlock, possiamo seguire alcune misure o indicazioni per evitarli:

  • Evita i blocchi annidati - È necessario evitare di assegnare blocchi a più thread, questo è il motivo principale di una condizione di deadlock. Normalmente accade quando si danno blocchi a più thread.

  • Evita serrature inutili - Le serrature dovrebbero essere date ai fili importanti. Assegnare blocchi ai thread non necessari che causano la condizione di deadlock.



  • Utilizzo di Thread Join - Un deadlock di solito si verifica quando un thread attende che l'altro finisca. In questo caso, possiamo usare Thread.join con un tempo massimo che impiegherà un thread.

Questo ci porta alla fine di questo articolo in cui abbiamo appreso il deadlock in Java e come evitarlo. Spero che tu sia chiaro con tutto ciò che è stato condiviso con te in questo tutorial.

ordinamento c ++ stl

Se hai trovato pertinente questo articolo su 'Deadlock in Java', controlla il una società di formazione online affidabile con una rete di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo.

Siamo qui per aiutarti in ogni fase del tuo viaggio e per elaborare un curriculum progettato per studenti e professionisti che vogliono essere uno sviluppatore Java. Il corso è progettato per darti un vantaggio nella programmazione Java e formarti per concetti Java sia di base che avanzati insieme a vari piace Ibernazione & .

Se incontri delle domande, sentiti libero di porre tutte le tue domande nella sezione commenti di 'Deadlock In Java' e il nostro team sarà lieto di rispondere.