Een race condition is een bug waarbij het resultaat afhangt van de onvoorspelbare timing van gelijktijdige operaties die gedeelde state benaderen. Het klassieke geval is een read-modify-write die niet atomair is.
Hoe het werkt
counter += 1 lijkt atomair maar is eigenlijk drie stappen: read, add, write. Twee threads kunnen zo interleaven dat een update verloren gaat.
counter = 0
Thread A: read 0 ─────────── write 1
Thread B: read 0 ─ write 1
Result: 1 (should be 2 — one increment lost)
