Wenn mehrere Threads sich Daten teilen, können ihre Operationen mitten in einem mehrstufigen Update verschachteln (interleave) und eine Race Condition erzeugen — einen Bug, bei dem das Ergebnis von unvorhersehbarem Timing abhängt. Synchronisation ist die Menge an Werkzeugen, die eine sichere Reihenfolge erzwingen.
Das Problem: eine Race Condition
sieht atomar aus, ist aber in Wirklichkeit Read-Modify-Write:
