Deadlock
Ein Deadlock liegt vor, wenn mehrere Threads auf gegenseitig gehaltene Sperren warten, was zu einer permanenten Blockierung führt.
Zweck
Die Bedingungen verstehen, die Deadlocks erzeugen, und ihre Abwehrmaßnahmen; ein Kernanliegen der Zuverlässigkeit nebenläufiger Programme.
Mechanismus
Die vier Coffman-Bedingungen: gegenseitiger Ausschluss, Halten und Warten, kein Entziehen und zirkuläres Warten. Treffen alle gleichzeitig zu, entsteht ein Deadlock. Abwehr: Lock-Ordering (eine globale Reihenfolge), Timeouts, Try-Lock, Vermeidung verschachtelter Sperren.
Anwendungsfälle
- Zuverlässigkeit der Nebenläufigkeit
- Lock-Design
- Deadlock-Erkennung