جب متعدد threads ڈیٹا شیئر کرتے ہیں، تو ان کے آپریشنز کسی کثیر مرحلہ اپڈیٹ کے بیچ میں گڈمڈ (interleave) ہو سکتے ہیں، جس سے ایک race condition پیدا ہوتی ہے — ایک ایسا bug جہاں نتیجہ ناقابلِ پیش گوئی timing پر منحصر ہوتا ہے۔ Synchronization ان اوزاروں کا مجموعہ ہے جو محفوظ ترتیب پر مجبور کرتے ہیں۔
مسئلہ: ایک race condition
جوہری (atomic) لگتا ہے لیکن حقیقت میں read-modify-write ہے:
