भुखमरी और Livelock
भुखमरी और livelock ज्यादा गतिरोध से कम आम एक समस्या है, लेकिन अभी भी समस्या है कि समवर्ती सॉफ्टवेयर के हर डिजाइनर के सामने आ सकते हैं।
भुखमरी
भुखमरी एक स्थिति है जहाँ एक धागा साझा संसाधन के लिए नियमित रूप पहुँच प्राप्त करने में असमर्थ है और प्रगति करने में असमर्थ है वर्णन करता है। ऐसा तब होता है जब साझा संसाधन लंबे समय तक "लालची" धागे से अनुपलब्ध होते हैं। उदाहरण के लिए, मान लें कि कोई ऑब्जेक्ट एक सिंक्रनाइज़ विधि प्रदान करता है जो अक्सर लौटने में लंबा समय लगता है। यदि एक थ्रेड अक्सर इस विधि को आमंत्रित करता है, तो अन्य थ्रेड जिन्हें एक ही ऑब्जेक्ट पर लगातार सिंक्रनाइज़ एक्सेस की आवश्यकता होती है, अक्सर अवरुद्ध हो जाती है।
Livelock
एक धागा अक्सर एक और धागा की कार्रवाई के जवाब में कार्य करता है। यदि अन्य धागे की कार्रवाई भी किसी अन्य धागे की कार्रवाई का जवाब है, तो आजीविका परिणाम हो सकती है। डेडलॉक के साथ, livelocked धागे आगे प्रगति करने में असमर्थ हैं। हालांकि, धागे अवरुद्ध नहीं हैं - वे काम शुरू करने के लिए एक दूसरे के जवाब में बहुत व्यस्त हैं। यह गलियारे में एक दूसरे को पारित करने का प्रयास करने वाले दो लोगों के लिए तुलनीय है: गैस्ट्रॉन गैस्टन पास करने के लिए अपने बाएं ओर जाता है, जबकि गैस्टन अल्फोन्स पास जाने के अपने अधिकार में चला जाता है। यह देखते हुए कि वे अभी भी एक-दूसरे को अवरुद्ध कर रहे हैं, एलफ़ोन अपने दाहिनी तरफ जाता है, जबकि गैस्टन अपने बायीं तरफ जाता है। वे अभी भी एक-दूसरे को अवरुद्ध कर रहे हैं, इसलिए ...
स्रोत
2014-03-18 20:06:08
कार्य निर्भरता डेडलॉक का कारण बनती है और नहीं। मेरी राय में आजीविका की आपकी परिभाषा पूरी तरह से गलत है। – giovannim