حالة التسابق خطأ تعتمد فيه النتيجة على التوقيت غير المتوقّع لعمليات متزامنة تصل إلى حالة مشتركة. الحالة الكلاسيكية هي read-modify-write ليست ذرّية.
كيف يعمل
counter += 1 يبدو ذرّيًا لكنه في الحقيقة ثلاث خطوات: قراءة، جمع، كتابة. يمكن لخيطين أن يتداخلا فيُفقَد تحديث.
text
counter = 0
Thread A: read 0 ─────────── write 1
Thread B: read 0 ─ write 1
Result: 1 (should be 2 — one increment lost)
مثال
python
counter =
():
counter
_ ():
counter +=
