Když více vláken sdílí data, jejich operace se mohou prokládat (interleave) uprostřed vícekrokové aktualizace, což vytváří race condition — bug, kde výsledek závisí na nepředvídatelném časování. Synchronizace je sada nástrojů, které vynucují bezpečné pořadí.
Problém: race condition
count++ vypadá atomicky, ale ve skutečnosti je to read-modify-write:
