Deadlock एउटा अवस्था हो जहाँ दुई वा बढी threads प्रत्येकले अरूले समातेको संसाधनका लागि सधैंभरि कुर्छन्, त्यसैले कोही अगाडि बढ्न सक्दैन। यसलाई चार शर्त एकसाथ हुन आवश्यक छ (Coffman conditions)।
Deadlock एउटा अवस्था हो जहाँ दुई वा बढी threads प्रत्येकले अरूले समातेको संसाधनका लागि सधैंभरि कुर्छन्, त्यसैले कोही अगाडि बढ्न सक्दैन। यसलाई चार शर्त एकसाथ हुन आवश्यक छ (Coffman conditions)।
कुनै एउटा भंग गर्नुहोस् र 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), पछि हटेर retry — hold-and-wait भंग गर्छ।Deadlocks ले systems लाई चुपचाप जमाउँछन् — कुनै crash छैन, केवल अड्किएका requests। चार शर्त नाम दिन सक्नुले तपाईं locks छरेर आशा गर्नुको सट्टा किन हुन्छ भन्ने बारेमा तर्क गर्न र लक्षित रोकथाम (प्रायः सुसंगत lock ordering) छान्न सक्नुहुन्छ भन्ने देखाउँछ।
विस्तृत उत्तरसहित IT अन्तर्वार्ता प्रश्नहरूको पुस्तकालय — जुनियरदेखि सिनियरसम्म।
दान गर्नुहोस्