Kurz erklärt
Ein Deadlock ist ein Stillstand, bei dem zwei oder mehr Threads oder Prozesse gegenseitig auf Ressourcen warten, die der jeweils andere festhält – keiner kann weitermachen.
Genauer
Klassisch: Thread A hält Sperre 1 und wartet auf Sperre 2, Thread B hält Sperre 2 und wartet auf Sperre 1. Das Programm hängt, ohne abzustürzen. Deadlocks treten bei Sperren (Mutex), Datenbank-Transaktionen und Netzwerk-Protokollen auf.