Ketika banyak thread berbagi data, operasi mereka bisa berselang-seling (interleave) di tengah sebuah pembaruan multi-langkah, menghasilkan race condition — bug di mana hasilnya bergantung pada timing yang tak terduga. Sinkronisasi adalah kumpulan alat yang memaksa pengurutan yang aman.
Masalahnya: sebuah race condition
tampak atomic tetapi sebenarnya adalah read-modify-write:
