Race Conditions

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
  • Eine Race Condition bezeichnet in der Programmierung eine bestimmte Konstellation
  • Das Ergebnis einer Operation vom zeitlichen Verhalten bestimmter Einzeloperationen oder der Umgebung abhängt.
  • Der Begriff stammt von der Vorstellung, dass zwei Signale wettlaufen, um die Ausgabe als erstes zu beeinflussen.
  • Im Allgemeinen ist die Möglichkeit zu vermeiden, dass eine Race Condition entsteht.
  • Unbeabsichtigte Wettlaufsituationen sind ein häufiger Grund für schwer auffindbare, nichtdeterministische Programmfehler.
  • Bezeichnend für solche Situationen ist, dass bereits die veränderten Bedingungen zum Programmtest, wie zusätzliches Logging oder Debug-Modus
  • Zu einem völligen Verschwinden der Symptome führen können, siehe hierzu auch Heisenbug.
  • Zur Vermeidung solcher Konstellationen können bei der Programmerstellung beispielsweise Semaphore eingesetzt werden.