একটি race condition হলো একটি bug যেখানে ফলাফল shared state access করা concurrent operation-এর অনিশ্চিত timing-এর উপর নির্ভর করে। ক্লাসিক ক্ষেত্র হলো একটি read-modify-write যা atomic নয়।
এটি কীভাবে কাজ করে
counter += 1 atomic দেখায় কিন্তু আসলে তিনটি ধাপ: read, add, write। দুটি thread এমনভাবে interleave করতে পারে যে একটি update হারিয়ে যায়।
counter = 0
Thread A: read 0 ─────────── write 1
Thread B: read 0 ─ write 1
Result: 1 (should be 2 — one increment lost)
