Kur shumë thread-e ndajnë të dhëna, operacionet e tyre mund të ndërthuren (interleave) në mes të një përditësimi me shumë hapa, duke prodhuar një race condition — një bug ku rezultati varet nga koha e paparashikueshme. Sinkronizimi është grupi i mjeteve që imponojnë renditje të sigurt.
Problemi: një race condition
duket atomik por në të vërtetë është read-modify-write:
