Zurück zur Übersicht

Begriff

Deadlock

Computer Science Concurrency S3
2 Quellen 0 Lernpfade 1 Backlink enriched

Warum wichtig?

Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.

Das "Vorfahrt-Problem" an einer Kreuzung. Vier Autos kommen gleichzeitig aus vier Richtungen. Jeder muss den Rechtskommenden vorlassen. Alle warten. Niemand fährt. Für immer. In der IT passiert das, wenn zwei Programme auf Ressourcen warten, die das jeweils andere Programm blockiert. "Ich gebe Drucker A erst frei, wenn ich Scanner B bekomme." "Ich gebe Scanner B erst frei, wenn ich Drucker A bekomme." Stillstand. Nichts geht mehr.

Merksatz: Ein Zustand, in dem zwei oder mehr Prozesse aufeinander warten, Ressourcen freizugeben, und dadurch dauerhaft blockiert sind.


Quick-Check

  1. Wie finde ich Deadlocks?
    Schwer. Oft nur durch "Thread Dumps" (Momentaufnahme aller Prozesse). Wenn da steht "Thread 1 waiting for Lock X held by Thread 2", hast du ihn.
  2. Was ist das Philosophen-Problem?
    Ein berühmtes Gedankenexperiment. 5 Philosophen sitzen am Tisch essen Spaghetti. Es gibt nur 5 Gabeln. Jeder braucht 2 Gabeln. Wenn alle gleichzeitig die linke Gabel nehmen, verhungern sie alle, weil niemand eine rechte bekommt. (Deadlock).
  3. Kann man sie automatisch lösen?
    Datenbanken (Postgres, Oracle) haben einen "Deadlock Detector". Wenn sie einen Kreis finden, töten sie einfach eine Transaktion (Opfer), damit die anderen weiterarbeiten können. Brutal, aber effektiv.