संभव डुप्लिकेट:
Java Thread Garbage collected or notजावा धागे और कचरा कलेक्टर
निम्नलिखित वर्ग पर विचार करें:
class Foo implements Runnable {
public Foo() {
Thread th = new Thread (this);
th.start();
}
public run() {
... // long task
}
}
हम
करकेFoo
के कई उदाहरण बनाते हैं
new Foo();
new Foo();
new Foo();
new Foo();
(ध्यान दें कि हम उन्हें पॉइंटर नहीं रखते हैं)।
ऐसे मामलों
run()
सिरों में से पहले धागा कचरा कलेक्टर द्वारा हटाया जा सकता है?दूसरे हाथ में, ऐसे मामलों `समय में धागा के बाद जीसी से निकाल दिया जाएगा: (दूसरे शब्दों में कोई संदर्भ
Foo
वस्तुओं के लिए है?) और, (') समाप्त हो जाती है, या कर रहे हैं हम स्मृति बर्बाद कर रहे हैं ("स्मृति रिसाव")?यदि कोई या तो 1. या 2. समस्या है, तो ऐसा करने का सही तरीका क्या है?
धन्यवाद
आप वास्तव में इसे बहुत आसानी से जांच सकते हैं। –
@Quaternion, हाँ शायद, लेकिन उस दूसरे प्रश्न का शब्द वास्तव में "obfuscated" और समझने में मुश्किल है, imho। – cibercitizen1
यह एक डुप्लिकेट नहीं है। जुड़ा हुआ प्रश्न "पूरा होने के बाद भी कचरा इकट्ठा किया जाएगा" के पहलू को संबोधित नहीं करता है (मैं इसे विशेष रूप से पूछने वाला था)। यह केवल "पहचाने जाने पर जीसीएड नहीं होगा" के पहलू को पूछता/जवाब देता है। यह सवाल मेरी राय में बेहतर है। – bluenote10