Zum Inhalt springen
uencoder

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

Verwandte Tools

References