जब कई threads data साझा करते हैं, तो उनके operations किसी बहु-चरणीय update के बीचोंबीच interleave हो सकते हैं, जिससे एक race condition पैदा होती है — एक ऐसा bug जिसका परिणाम अप्रत्याशित timing पर निर्भर करता है। Synchronization वह उपकरण-समूह है जो सुरक्षित क्रम को बाध्य करता है।
समस्या: एक race condition
count++ atomic दिखता है पर असल में read-modify-write है:
