الـ deadlock حالة ينتظر فيها خيطان أو أكثر إلى الأبد موردًا يمسكه الآخرون، فلا يستطيع أيٌّ منهم المتابعة. يتطلّب تحقّق أربعة شروط في آن واحد (شروط Coffman).
الـ deadlock حالة ينتظر فيها خيطان أو أكثر إلى الأبد موردًا يمسكه الآخرون، فلا يستطيع أيٌّ منهم المتابعة. يتطلّب تحقّق أربعة شروط في آن واحد (شروط Coffman).
اكسر أيًّا منها ويصبح الـ deadlock مستحيلًا.
Thread 1 holds A, wants B ─┐
├─ circular wait → deadlock
Thread 2 holds B, wants A ─┘
# DEADLOCK: threads lock in opposite orders
def t1():
with lockA:
with lockB: ... # T1: A then B
def t2():
with lockB:
with lockA: ... # T2: B then A ← cycle!
# FIX: impose a global lock ordering (always A before B)
def safe():
with lockA:
with lockB: ... # everyone acquires in the same order
tryAcquire(timeout)، تراجع وأعد المحاولة — يكسر الإمساك والانتظار.الـ deadlocks تجمّد الأنظمة بصمت — بلا انهيار، مجرّد طلبات معلّقة. وتسمية الشروط الأربعة تُظهر أنك تستطيع التفكير في لماذا يحدث واختيار منع مُوجَّه (عادةً ترتيب قفل متّسق)، بدل رشّ الأقفال والأمل.
مكتبة من أسئلة مقابلات تقنية المعلومات مع إجابات مفصّلة — من المبتدئ إلى المتقدم.
تبرع