"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > क्या थ्रेड कचरा एकत्र किया जाता है जब इसका संदर्भ जावा में शून्य पर सेट होता है?

क्या थ्रेड कचरा एकत्र किया जाता है जब इसका संदर्भ जावा में शून्य पर सेट होता है?

2024-11-18 को प्रकाशित
ब्राउज़ करें:611

Is a Thread Garbage Collected When its Reference is Set to Null in Java?

जावा थ्रेड: कचरा एकत्र किया गया या नहीं?

इस जावा कोड स्निपेट में, एक नया थ्रेड बनाया जाता है और t.start के साथ शुरू किया जाता है( ). हालाँकि, थ्रेड शुरू करने के बाद, थ्रेड संदर्भ t को t = null के साथ शून्य पर सेट किया जाता है। इससे यह सवाल उठता है कि क्या थ्रेड सक्रिय संदर्भ के बिना कचरा एकत्र किया जाएगा या नहीं।

Java में कचरा संग्रह

जब कचरा संग्रहकर्ता जावा में चलता है , यह उन वस्तुओं की पहचान करता है और हटा देता है जो अब प्रोग्राम के सक्रिय भागों से पहुंच योग्य नहीं हैं। इस स्थिति में, थ्रेड एक अज्ञात वर्ग के रूप में बनाया जाता है जो चलता रहता है। भले ही मुख्य थ्रेड में t संदर्भ शून्य पर सेट है, थ्रेड स्वयं सक्रिय रहता है और तुरंत कचरा एकत्र नहीं किया जाता है।

थ्रेड सक्रिय क्यों रहता है

A रनिंग थ्रेड को कचरा संग्रहण रूट माना जाता है, जिसका अर्थ है कि इसे कचरा संग्रहकर्ता द्वारा पहुंच योग्य माना जाता है। जब तक थ्रेड अभी भी चल रहा है, यह उन वस्तुओं को कचरा एकत्र होने से रोकता है जिन्हें वह संदर्भित करता है।

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

मुख्य थ्रेड कचरा संग्रहण रूट के रूप में

इसी तरह, मुख्य थ्रेड भी कचरा संग्रहण जड़. भले ही मुख्य थ्रेड का कोई स्पष्ट संदर्भ न हो, यह अभी भी सक्रिय है और चल रहा है। परिणामस्वरूप, यह स्वयं को और इसके द्वारा संदर्भित किसी भी वस्तु को कचरा एकत्र होने से रोकता है।

निष्कर्ष

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

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3