| 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= | + | <syntaxhighlight lang=c> |
static int printer_reserved = 0; | static int printer_reserved = 0; | ||
| Zeile 15: | Zeile 15: | ||
{ | { | ||
printer_reserved = 0; | printer_reserved = 0; | ||
| − | }</syntaxhighlight> | + | } |
| + | </syntaxhighlight> | ||
Wenn ein Prozess drucken möchte, macht er das folgendermaßen: | Wenn ein Prozess drucken möchte, macht er das folgendermaßen: | ||
| − | <syntaxhighlight lang= | + | <syntaxhighlight lang=c> |
I_want_the_printer_now(); | I_want_the_printer_now(); | ||
//Drucken, drucken, drucken... | //Drucken, drucken, drucken... | ||