जावा में डेडलॉक कैसे संभालें?



यह आलेख डेडलॉक इन जावा की अवधारणा को एक उदाहरण के साथ कवर करता है जो दिखाता है कि बहु थ्रेडेड प्रोग्राम में थ्रेड्स कैसे अवरुद्ध हो जाते हैं।

जावा प्रोग्रामिंग लैंग्वेज सपोर्ट करती है । इसमें मल्टीटास्किंग के लिए एक साथ कई थ्रेड चल रहे हैं। लेकिन कुछ मामलों में या कुछ कमियों के कारण, सूत्र हमेशा प्रतीक्षा की स्थिति में खुद को पाते हैं। इस लेख में, हम गतिरोध की स्थिति को समझेंगे और इससे बचने के विभिन्न तरीके। इस ब्लॉग में चर्चा किए गए विषय निम्नलिखित हैं:

परियोजना अधिप्राप्ति प्रबंधन क्या है

जावा में गतिरोध क्या है?

जावा में गतिरोध एक ऐसी स्थिति है जहां दो या अधिक धागे हमेशा के लिए अवरुद्ध हो जाते हैं, एक दूसरे की प्रतीक्षा कर रहे हैं।





यह आमतौर पर तब होता है जब कई थ्रेड्स को समान ताले की आवश्यकता होती है लेकिन उन्हें अलग-अलग ऑर्डर में प्राप्त होता है। जावा में सिंक्रनाइज़ किए गए कीवर्ड के कारण गतिरोध की स्थिति से ग्रस्त है।

यह निर्दिष्ट थ्रेड को लॉक का इंतजार करते समय, या मॉनिटर को निर्दिष्ट करने के लिए ब्लॉक करने का कारण बनता है वस्तु



जावा में गतिरोध - एडुर्का

डेडलॉक उदाहरण

सार्वजनिक वर्ग उदाहरण {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) {अंतिम स्ट्रिंग r1 = 'edureka' अंतिम स्ट्रिंग r2 = 'जावा' थ्रेड t1 = नया थ्रेड () {सार्वजनिक शून्य रन () {सिंक्रोनाइज़ (r1) {सिस्टम। out.println ('थ्रेड 1: लॉक्ड r1') {थ्रेड। स्लीप (100)} कैच (अपवाद e) {} सिंक्रोनाइज़ (r2) {System.out.println ('थ्रेड 1: लॉक्ड r2)}}}} की कोशिश करें } थ्रेड t2 = नया थ्रेड () {सार्वजनिक शून्य रन () {सिंक्रोनाइज़ (r1) {System.out.println ('थ्रेड 2: लॉक्ड r1') {थ्रेड। स्लीप (100)} कैच (अपवाद e}} आज़माएं सिंक्रोनाइज़ (r2) {System.out.println ('थ्रेड 2: लॉक्ड r2')}}}}} t1.start () t2.start ()}}
 आउटपुट: थ्रेड 1: लॉक्ड आर 1 थ्रेड 2: लॉक्ड आर 2

जावा में गतिरोध से कैसे बचें?

हालांकि गतिरोध की स्थिति से बचना पूरी तरह से संभव नहीं है, लेकिन हम उनसे बचने के लिए कुछ उपायों या बिंदुओं का पालन कर सकते हैं:

  • नेस्टेड ताले से बचें - आपको कई थ्रेड्स को ताले देने से बचना चाहिए, यह एक गतिरोध की स्थिति का मुख्य कारण है। यह आमतौर पर तब होता है जब आप कई थ्रेड्स को ताले देते हैं।

  • अनावश्यक ताले से बचें - महत्वपूर्ण थ्रेड्स को ताले दिए जाने चाहिए। अनावश्यक थ्रेड्स को ताले देते हैं जो गतिरोध की स्थिति का कारण बनते हैं।



  • थ्रेड जॉइन का उपयोग करना - एक गतिरोध आमतौर पर तब होता है जब एक धागा दूसरे के खत्म होने का इंतजार कर रहा होता है। इस स्थिति में, हम थ्रेड का उपयोग कर सकते हैं। अधिकतम समय के साथ जो एक धागा ले जाएगा।

यह हमें इस लेख के अंत में लाता है जहां हमने जावा में गतिरोध के बारे में सीखा है और इससे कैसे बचा जाए। मुझे आशा है कि आप इस ट्यूटोरियल में आपके साथ साझा किए गए सभी के साथ स्पष्ट हैं।

यदि आपको यह लेख 'डेडलॉक इन जावा' प्रासंगिक है, तो देखें दुनिया भर में फैले 250,000 से अधिक संतुष्ट शिक्षार्थियों के नेटवर्क के साथ एक विश्वसनीय ऑनलाइन शिक्षण कंपनी।

हम यहां आपकी यात्रा में हर कदम पर आपकी मदद करने के लिए और एक पाठ्यक्रम के साथ आए हैं, जो छात्रों और पेशेवरों के लिए बनाया गया है, जो जावा डेवलपर बनना चाहते हैं। पाठ्यक्रम आपको जावा प्रोग्रामिंग में एक शुरुआत देने के लिए डिज़ाइन किया गया है और आपको विभिन्न के साथ-साथ कोर और उन्नत जावा अवधारणाओं के लिए प्रशिक्षित करता है पसंद सीतनिद्रा में होना और

यदि आपको कोई प्रश्न आता है, तो 'डेडलॉक इन जावा' के टिप्पणी अनुभाग में अपने सभी प्रश्न पूछने के लिए स्वतंत्र महसूस करें और हमारी टीम जवाब देने में प्रसन्न होगी।