First page Back Continue Last page Overview Image

Race conditions

Was ist in unserem vorigen Beispiel passiert?

Das Problem besteht darin, dass die beiden Anweisungen

x += 1

und

x -= 1

nicht atomar sind.

In einem Thread können wir beispielsweise x += 1 am berechnen sein. Dazu muss zuerst der Wert von x abgerufen werden, bevor der Ausdruch “x + 1” berechnet werden kann.

Nun kann es passieren, dass ein anderer Prozess auch den Wert von x benötigt und abruft, bevor der erste Prozess das Ergebniss der Addition zurückgeschrieben hat.

Die ist eine “race condition”