Race Condition

Eine Race Condition tritt auf, wenn ein Programm vom zeitlichen Ablauf eines oder mehrerer Prozesse abhängt, um korrekt zu funktionieren. Wenn ein Thread zu einem unerwarteten Zeitpunkt ausgeführt wird oder endet, kann dies zu unvorhersehbarem Verhalten führen, etwa zu einer falschen Ausgabe oder einem Deadlock des Programms.

Die meisten Softwareprogramme sind Multithreading-fähig, das heißt, sie können mehrere Threads gleichzeitig verarbeiten. Eine gut programmierte Anwendung stellt sicher, dass die Ergebnisse jedes Threads in der erwarteten Reihenfolge verarbeitet werden. Wenn ein Programm von Threads abhängt, die in einer unvorhersehbaren Reihenfolge ausgeführt werden, kann eine Race Condition auftreten.

Ein einfaches Beispiel ist ein Logikgatter, das boolesche Werte verarbeitet. Das UND-Logikgatter hat zwei Eingänge und einen Ausgang. Wenn die Eingänge A und B den Wert true haben, erzeugt das UND-Gatter den Wert TRUE. Wenn einer oder beide Eingänge den Wert false haben, erzeugt es den Wert FALSE. Eine Race Condition kann auftreten, wenn ein Programm das Ergebnis des Logikgatters prüft, bevor die Variablen A und B geladen wurden. Der korrekte Ablauf wäre:

  1. Variable A laden
  2. Variable B laden
  3. Ergebnis des UND-Logikgatters prüfen

Eine falsche Reihenfolge wäre:

  1. Variable A laden
  2. Ergebnis des UND-Logikgatters prüfen
  3. Variable B laden

Das Ergebnis des zweiten Beispiels oben kann mit dem des ersten Beispiels übereinstimmen, muss es aber nicht. Beispielsweise kann die Variable B vor und nach dem Laden den Wert FALSE haben, wodurch sich das Ergebnis nicht ändern würde. Wenn A den Wert FALSE hat, spielt es keine Rolle, ob B den Wert TRUE oder FALSE hat. Wenn A und B jedoch beide den Wert true haben, sollte das Ergebnis TRUE sein. Wird die Variable B erst nach der Prüfung des Ergebnisses des Logikgatters geladen, würde dies zu einem falschen Ergebnis von FALSE führen.

Die inkonsistente Ausgabe, die durch Race Conditions entsteht, kann Fehler verursachen, die schwer zu erkennen sind. Programmierer können diese Probleme vermeiden, indem sie sicherstellen, dass Threads in einer konsistenten Reihenfolge verarbeitet werden.

Aktualisiert January 24, 2020 von Per C.

quizTesten Sie Ihr Wissen

Which of the following is a type of file system?

A
VIP
0%
B
VCI
0%
C
VLAN
0%
D
VFAT
0%
Correct! Incorrect!     View the VFAT definition.
More Quizzes →

Das Tech Terms Computer-Lexikon

Die Definition von Race Condition auf dieser Seite wurde von den Autoren von TechTerms.com verfasst. Wenn Sie auf diese Seite verweisen oder diese Definition zitieren möchten, verwenden Sie bitte die grüne Zitierleiste direkt unterhalb der Definition.

Unser Ziel ist es, Computerbegriffe auf verständliche Weise zu erklären. Wir streben bei jeder veröffentlichten Definition nach Genauigkeit und Einfachheit. Wenn Sie Feedback zu dieser Definition haben oder einen neuen Fachbegriff vorschlagen möchten, kontaktieren Sie uns.

Der Tech Terms Newsletter

Erweitern Sie Ihr technisches Wissen mit unserem täglichen oder wöchentlichen Newsletter! Abonnieren Sie noch heute und erhalten Sie neue Begriffe und Quizze in Ihren Posteingang.

Melden Sie sich für den kostenlosen TechTerms‑Newsletter an

Wie oft möchten Sie eine E-Mail erhalten?

Sie können sich jederzeit über die Links in jeder E-Mail abmelden oder Ihre Einstellungen ändern. Fragen? Bitte kontaktieren Sie uns.

Hinweis: Der Newsletter wird auf Englisch versandt.