Race Condition — Änderungen 11432 → 11433

Zeile 3: Zeile 3:
 
== Beispiel ==
 
== Beispiel ==
 
Wie könnte eine Race Condition aussehen? Meistens handelt es sich um zwei [[Prozess|Prozesse]], die die gleiche Funktion ausführen. Nehmen wir also eine hypothetische Funktion namens <code>I_want_the_printer_now()</code>, die den Drucker für den aktuellen Prozess reserviert, damit kein anderer Prozess darauf zugreifen kann. Außerdem gibt es eine Funktion, die den Drucker wieder freigibt, <code>release_printer()</code>. Der Code könnte zum Beispiel so aussehen:
 
Wie könnte eine Race Condition aussehen? Meistens handelt es sich um zwei [[Prozess|Prozesse]], die die gleiche Funktion ausführen. Nehmen wir also eine hypothetische Funktion namens <code>I_want_the_printer_now()</code>, die den Drucker für den aktuellen Prozess reserviert, damit kein anderer Prozess darauf zugreifen kann. Außerdem gibt es eine Funktion, die den Drucker wieder freigibt, <code>release_printer()</code>. Der Code könnte zum Beispiel so aussehen:
−
<syntaxhighlight lang=c>
+
<syntaxhighlight lang="c">
 
static int printer_reserved = 0;
 
static int printer_reserved = 0;
  
Zeile 19: Zeile 19:
  
 
Wenn ein Prozess drucken möchte, macht er das folgendermaßen:
 
Wenn ein Prozess drucken möchte, macht er das folgendermaßen:
−
<syntaxhighlight lang=c>
+
<syntaxhighlight lang="c">
 
I_want_the_printer_now();
 
I_want_the_printer_now();
 
//Drucken, drucken, drucken...
 
//Drucken, drucken, drucken...