Race condition ialah pepijat di mana keputusan bergantung pada pemasaan (timing) yang tidak dapat diramal bagi operasi serentak yang mengakses keadaan dikongsi (shared state). Kes klasik ialah read-modify-write yang tidak atomik.
Bagaimana ia berfungsi
counter += 1 kelihatan atomik tetapi sebenarnya tiga langkah: baca, tambah, tulis. Dua thread boleh berselang-seli supaya satu kemas kini hilang.
counter = 0
Thread A: read 0 ─────────── write 1
Thread B: read 0 ─ write 1
Result: 1 (should be 2 — one increment lost)
