एक deadlock तब होता है जब दो (या अधिक) transactions प्रत्येक एक lock रखते हैं जिसकी दूसरे को आवश्यकता है, इसलिए कोई आगे नहीं बढ़ सकता — वे एक-दूसरे की हमेशा के लिए प्रतीक्षा करते हुए फंस जाते हैं। Databases deadlocks का पता लगाते हैं और एक transaction को abort करके ("victim") उन्हें हल करते हैं, जिसे retry करना होता है। कारणों और रोकथाम को समझना concurrent applications के लिए महत्वपूर्ण है।
एक deadlock कैसे होता है
Transaction A: locks row 1, then wants row 2
Transaction B: locks row 2, then wants row 1
→ A waits for B (to release row 2), B waits for A (to release row 1) → DEADLOCK
Neither can proceed; they're waiting on each other in a cycle.
