सामान्य तौर पर, गतिरोध का अर्थ है कि दो या दो से अधिक निकाय कुछ स्रोतों को अवरुद्ध कर रहे हैं, और उनमें से कोई भी समाप्त करने में सक्षम नहीं है, क्योंकि वे चक्रीय तरीके से स्रोतों को अवरुद्ध कर रहे हैं।
एक उदाहरण:मान लें कि मेरे पास टेबल ए और टेबल बी है, मुझे ए और फिर बी में कुछ अपडेट करने की ज़रूरत है और मैं उपयोग के समय दोनों को लॉक करने का फैसला करता हूं (यह वास्तव में बेवकूफ व्यवहार है, लेकिन यह अब इसका उद्देश्य पूरा करता है ) उसी समय, कोई दूसरा व्यक्ति विपरीत क्रम में वही काम करता है - पहले B को लॉक करता है, फिर A को लॉक करता है।
कालानुक्रमिक रूप से, ऐसा होता है:
proc1:लॉक ए
proc2:लॉक बी
proc1:लॉक B - proc2 के रिलीज़ होने तक प्रतीक्षा करना शुरू कर देता है B
proc2:लॉक A - proc1 के रिलीज़ होने तक प्रतीक्षा करना शुरू कर देता है
उनमें से कोई भी कभी खत्म नहीं होगा। यह गतिरोध है। व्यवहार में यह आमतौर पर टाइमआउट त्रुटियों में परिणत होता है क्योंकि यह किसी भी क्वेरी को हमेशा के लिए लटकाए रखना नहीं चाहता है, और अंतर्निहित सिस्टम (जैसे डेटाबेस) उन प्रश्नों को मार देगा जो समय पर समाप्त नहीं होते हैं।
गतिरोध का एक वास्तविक विश्व उदाहरण है जब आप अपने घर की चाबियों को अपनी कार में और अपनी कार की चाबियों को अपने घर में बंद कर देते हैं।