| 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... | ||