Unter dem Begriff Deadlock versteht man ein Problem in der nebenläufigen Programmierung, wobei zwei oder mehrere Threads sich gegenseitig Ressourcen vorenthalten, die für eine weitere Ausführung der beteiligten Threads aber benötigt werden.
Ein Beispiel aus der realen Welt wäre z.B. zwei Kinder die ein Computerspiel Ein Beispiel aus der realen Welt wäre z.B. zwei Kinder die ein Computerspiel spielen möchten, wobei eine bestimmte CD-ROM zum Starten des Spiels benötigt wird. Das erste Kind, setzt sich vor dem Computer und sucht die CD-ROM zum Starten des Spieles. Die CD-ROM aber hat sich zwischenzeitlich das zweite Kind zu eigen gemacht. Beide können mit dem Start des Spiels nicht fortfahren, bis einer von Ihnen eine der Ressourcen (Coputer bzw. CD-ROM) freigibt. Die beiden Kinder stehen nun in einer Deadlock-Beziehung zueinander.
Innerhalb der Softwareentwickung müssen die Ressourcen nicht unbedingt physikalischer Natur sein, sondern können z.B. auch benötigte Objekte sein.