Kun useat threadit jakavat dataa, niiden operaatiot voivat limittyä (interleave) kesken monivaiheisen päivityksen, tuottaen race conditionin — bugin, jossa lopputulos riippuu ennustamattomasta ajoituksesta. Synkronointi on työkalujen joukko, joka pakottaa turvallisen järjestyksen.
Ongelma: race condition
näyttää atomiselta mutta on todellisuudessa read-modify-write:
