In questo articolo, impareremo gli aspetti sotto l'elenco dei deadlocks in Java:
Quindi iniziamo!
Cos'è uno stallo?
Deadlock descrive una situazione in cui altri due thread stanno cercando di accedere alla stessa risorsa contemporaneamente e, di conseguenza, nessuno ottiene la risorsa e alla fine viene bloccato per sempre.
Quando e dove può verificarsi un deadlock
In Java, lo scenario di deadlock può verificarsi solo nell'ambiente multithread in cui si esegue più di un thread contemporaneamente. Inoltre, una parola chiave sincronizzata può causare uno stallo in java.
Dalla figura sopra, possiamo osservare che thread1 è in attesa di thread2 per rilasciare le risorse e viceversa.
Esempi di deadlock
Consideriamo l'esempio di seguito per una profonda comprensione di come si verifica uno stallo in Java:
classe pubblica deadlockexampleIn questo esempio, abbiamo due thread thread1 e thread2, entrambi i thread iniziano e chiamano il metodo run ().
Il seguente sarà l'output per lo snippet sopra:
Dallo snippet sopra, è chiaro che entrambi i fili si sono bloccati.
Come prevenire uno stallo in Java
Di seguito è riportato l'elenco di prevenzioni che possono essere adottate per evitare uno stallo in Java:
Conclusione
Deadlock descrive una situazione in cui altri due thread stanno cercando di accedere alla stessa risorsa contemporaneamente e, di conseguenza, nessuno ottiene la risorsa e alla fine viene bloccato per sempre. In Java, un deadlock si verifica solo nell'ambiente multithread dove più di un thread esegue contemporaneamente. Inoltre, una parola chiave sincronizzata può causare uno stallo in java. In Java, uno stallo non può essere risolto completamente, tuttavia, può essere evitato adottando alcune precauzioni/regole necessarie e.G. Evitare l'uso di blocchi non necessari, serrature nidificate, ecc.
Questo articolo presenta una panoramica dettagliata di quelli che sono i deadlocks in Java, come si verificano deadlock e come evitare i deadlocks in Java.