Wanneer meerdere threads data delen, kunnen hun operaties interleaven midden in een update van meerdere stappen, wat een race condition oplevert — een bug waarbij de uitkomst afhangt van onvoorspelbare timing. Synchronisatie is de verzameling tools die een veilige volgorde afdwingen.
Het probleem: een race condition
lijkt atomair maar is eigenlijk read-modify-write:
