Deadlock

Un deadlock è una condizione in cui un programma non può accedere a una risorsa necessaria per continuare. Quando un'applicazione in esecuzione entra in deadlock, può "bloccarsi" o smettere di rispondere.

Le risorse, come i dati salvati o memorizzati nella cache, possono essere bloccate quando vengono utilizzate da uno specifico processo all'interno di un programma. Il blocco dei dati impedisce ad altri processi di sovrascriverli prematuramente. Se un processo o una query deve accedere a dati bloccati, ma il processo che li blocca non li rilascia, può verificarsi un deadlock.

Ad esempio, la situazione seguente causerà un deadlock tra due processi:

  • Il processo 1 richiede la risorsa B al processo 2.
  • La risorsa B è bloccata mentre il processo 2 è in esecuzione.
  • Il processo 2 richiede la risorsa A al processo 1 per terminare l'esecuzione.
  • La risorsa A è bloccata mentre il processo 1 è in esecuzione.

Il risultato è che il processo 1 e il processo 2 aspettano che l'altro termini. Poiché nessuno dei due processi può continuare finché l'altro non completa l'esecuzione, si crea un deadlock.

Evitare i deadlock

Gli sviluppatori possono prevenire i deadlock evitando condizioni di blocco nella logica di programmazione. Ad esempio, invece di fare affidamento reciproco tra due processi, il codice sorgente può essere scritto in modo che ogni thread termini prima che un altro thread abbia bisogno delle sue risorse. Assicurandosi che i dati siano accessibili quando servono, i programmatori possono proteggere le loro applicazioni da blocchi o arresti anomali.

NOTE: I deadlock possono verificarsi anche quando vengono eseguite due o più query su un database. I database transazionali bloccano i record attivi, impedendo ad altre query di accedervi. Se un processo non può accedere a un record bloccato, può verificarsi un deadlock del database.

Aggiornato January 18, 2020 da Per C.

quizMetti alla prova le tue conoscenze

The application design model "MVC" is short for what?

A
Model-View-Controller
0%
B
Multi-Variable-Coding
0%
C
Mounted-Virtual-Computer
0%
D
Macro-Version-Compiling
0%
Correct! Incorrect!     View the MVC definition.
More Quizzes →

Il dizionario informatico Tech Terms

La definizione di Deadlock in questa pagina è una definizione originale scritta dagli autori di TechTerms.com. Se desideri fare riferimento a questa pagina o citare questa definizione, utilizza la barra di citazione verde direttamente sotto la definizione.

Il nostro obiettivo è spiegare la terminologia informatica in modo semplice e comprensibile. Ci impegniamo per l'accuratezza e la semplicità in ogni definizione pubblicata. Se hai commenti o vuoi suggerire un nuovo termine tecnico, contattaci.

La newsletter di Tech Terms

Migliora le tue conoscenze tecniche con la nostra newsletter giornaliera o settimanale! Iscriviti oggi e ricevi nuovi termini e quiz nella tua casella di posta.

Iscriviti alla newsletter gratuita di TechTerms

Con quale frequenza desideri ricevere un'e-mail?

Puoi annullare l'iscrizione o modificare la frequenza in qualsiasi momento tramite i link presenti in ogni e-mail. Domande? Contattaci.

Nota: La newsletter viene inviata in inglese.