Når flere tråde deler data, kan deres operationer flettes ind i hinanden (interleave) midt i en opdatering med flere trin og skabe en race condition — en fejl, hvor udfaldet afhænger af uforudsigelig timing. Synkronisering er det sæt værktøjer, der gennemtvinger sikker rækkefølge.
Problemet: en race condition
ser atomisk ud, men er i virkeligheden read-modify-write:
