Zurück zur Übersicht

Begriff

Race Condition

Computer Science Concurrency S3
1 Quelle 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.

Stell dir ein gemeinsames Bankkonto vor (100 € Guthaben). Du und deine Frau heben genau gleichzeitig (in der gleichen Millisekunde) 100 € am Automaten ab. Automat A prüft: "100 € da? Ja." (Gibt Geld). Automat B prüft: "100 € da? Ja." (Gibt Geld). Ergebnis: Ihr habt 200 € Bargeld, aber nur 100 € auf dem Konto. Die Bank hat 100 € Verlust gemacht. Das ist eine Race Condition: Ein Fehler, der passiert, weil zwei Prozesse "um die Wette rennen" und das Timing nicht stimmt.

Merksatz: Ein Fehler in Systemen, bei dem das Ergebnis von der zufälligen zeitlichen Reihenfolge von Ereignissen abhängt.


Quick-Check

  1. Sind Single-Core-CPUs sicher?
    Nein. Auch dort gibt es "Preemptive Multitasking". Das Betriebssystem kann Thread A mitten in der Arbeit unterbrechen und Thread B starten.
  2. Wie verhindere ich das?
    Mit Mutex (Mutual Exclusion). Ein "Stick", den nur einer halten darf. Wer den Stick hat, darf schreiben. Alle anderen müssen warten.
  3. Ist JavaScript sicher?
    Meistens ja, weil JS (in Node.js und Browser) Single-Threaded ist (Event Loop). Es führt Code immer am Stück aus. Ausnahmen: Worker Threads oder Datenbank-Zugriffe.