जावा में थ्रेड समाप्ति: Thread.stop() को क्यों हटा दिया गया है?
जावा में Thread.stop() को अंतर्निहित कारणों से बंद कर दिया गया है सुरक्षा मुद्दे. Thread.stop() का उपयोग करके किसी थ्रेड को रोकने से उसके द्वारा रखे गए किसी भी लॉक (मॉनीटर) को अचानक अनलॉक कर दिया जाता है, जिससे संभावित रूप से ऑब्जेक्ट असंगत स्थिति में रह जाते हैं और अप्रत्याशित व्यवहार होता है। यह व्यवहार अप्रत्याशित हो सकता है और इसका पता लगाना मुश्किल हो सकता है।
मॉनिटर को समझना
मॉनिटर सिंक्रनाइज़ेशन ऑब्जेक्ट हैं जो साझा संसाधनों तक थ्रेड-सुरक्षित पहुंच सुनिश्चित करते हैं। जब कोई थ्रेड मॉनिटर पर लॉक प्राप्त कर लेता है, तो वह संसाधन तक विशेष रूप से तब तक पहुंच सकता है जब तक वह लॉक जारी नहीं कर देता। जब Thread.stop() को कॉल किया जाता है, तो थ्रेड तुरंत सभी लॉक जारी कर देता है, जिससे डेटा भ्रष्टाचार या रेस की स्थिति पैदा हो सकती है यदि अन्य थ्रेड भी समान संसाधनों तक पहुंच रहे हैं।
Thread.stop का विकल्प( )
चूंकि Thread.stop() को दृढ़ता से हतोत्साहित किया जाता है, इसलिए जावा थ्रेड को शानदार तरीके से रोकने के लिए वैकल्पिक तंत्र प्रदान करता है। एक दृष्टिकोण यह है कि थ्रेड को समाप्त होने का संकेत देने के लिए बूलियन ध्वज या वेरिएबल का उपयोग किया जाए। थ्रेड समय-समय पर इस ध्वज की जांच कर सकता है और सही होने पर बाहर निकल सकता है।
एक अन्य दृष्टिकोण एक सहकारी रुकावट तंत्र को लागू करना है। जावा में थ्रेड्स को इंटरप्ट() विधि को कॉल करके बाधित किया जा सकता है। जब कोई थ्रेड बाधित होता है, तो यह इस घटना को उचित रूप से संभाल सकता है, जैसे कि इसके निष्पादन को रोकना या एक विशिष्ट तरीके से रुकावट का जवाब देना।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3