डेडलॉक तब होता है जब एक संसाधन एक थ्रेड द्वारा लॉक किया जाता है और उसी समय किसी अन्य थ्रेड द्वारा आवश्यक होता है। मल्टीप्रोसेसिंग सिस्टम में यह समस्या बार-बार होती है।
यह तब हो सकता है जब दो या दो से अधिक थ्रेड किसी अन्य थ्रेड से संबंधित संसाधन की प्रतीक्षा करते हैं। यहाँ एक उदाहरण है -
एक सूत्र | थ्रेड टू |
---|---|
लॉक पी लेता है | लॉक Q लेता है |
अनुरोध लॉक Q | अनुरोध लॉक P |
थ्रेड वन को लॉक क्यू नहीं मिलेगा क्योंकि यह थ्रेड टू से संबंधित है। उसी तरह, थ्रेड टू को लॉक पी नहीं मिलेगा क्योंकि इसका मूल मालिक थ्रेड वन है।
डेडलॉक तीन-तरफा गतिरोध भी हो सकता है जो तब होता है जब तीन धागे और तीन ताले आम होते हैं। उसी तरह, यह चार-तरफ़ा, पाँच-तरफ़ा और अन्य गतिरोधों के लिए हो सकता है।
भुखमरी एक मल्टीथ्रेडेड एप्लिकेशन में एक या अधिक चलने योग्य थ्रेड्स का स्थायी अवरोध है।