Race condition हा एक bug आहे जिथे निकाल shared state ला access करणाऱ्या concurrent operations च्या अनिश्चित timing वर अवलंबून असतो. classic प्रकरण म्हणजे atomic नसलेले read-modify-write.
हे कसे कार्य करते
counter += 1 atomic दिसते पण प्रत्यक्षात तीन पावले आहेत: read, add, write. दोन threads interleave होऊ शकतात त्यामुळे एक update गमावला जातो.
counter = 0
Thread A: read 0 ─────────── write 1
Thread B: read 0 ─ write 1
Result: 1 (should be 2 — one increment lost)
