Il deadlock è un errore di concorrenza in cui due o più percorsi di esecuzione detengono ciascuno una risorsa di cui gli altri hanno bisogno, quindi nessuno può continuare. In pratica, ciò coinvolge spesso lock, mutex, semafori o risorse di file e dispositivi. Poiché ogni partecipante è in attesa, il sistema smette di avanzare invece di rallentare semplicemente.
Nella sicurezza informatica, i deadlock sono importanti perché possono diventare una condizione affidabile di denial-of-service. Nel codice del kernel, nel codice dei driver o nei servizi ad alto traffico, un ordine errato dei lock può bloccare un sottosistema, fermare le richieste o mandare in stallo un'intera macchina. I difensori individuano i deadlock con verifiche dell'ordine dei lock, test di stress, tracing e watchdog che rilevano thread bloccati. Prevenirli significa di solito applicare un rigoroso ordine dei lock, sezioni critiche più brevi, evitare lock annidati quando possibile e rivedere con attenzione i percorsi di codice concorrenti.


