मेरे पास एक सिद्धांत है कि सीएलआर कचरा संग्रहण तंत्र का अर्थ है कि मैं अपने ऑब्जेक्ट पदानुक्रम में परिपत्र संदर्भों से दूर हो सकता हूं बिना टियरडाउन और कचरा संग्रह के लिए डेडलॉक्स बनाये। क्या यह एक सुरक्षित धारणा बनाने के लिए है? (लक्ष्य भाषा VB.NET)क्या सीएलआर कचरा संग्रहण पद्धति का मतलब है कि परिपत्र ऑब्जेक्ट संदर्भों को फेंकना सुरक्षित है?
उत्तर
नेट कचरा कलेक्टर एक पीढ़ीगत निशान और झाडू कलेक्टर है। यह संदर्भ गिनती का उपयोग नहीं करता है। तो हाँ, परिपत्र संदर्भ होना सुरक्षित है। भाषा अप्रासंगिक
बस एक स्थिर के संदर्भ को पारित करने से बचने के लिए बहुत सावधान रहें और यह भी याद रखें कि प्रतिनिधियों को उस वस्तु के संदर्भ के रूप में गिना जाएगा, जिस पर वे लागू किए गए हैं। एक स्थिर घटना हैंडलर सूची जैसी चीजों के साथ चीजों को जीवित रखना बहुत आसान है। – morechilli
इस लेख के अनुसार है: https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-5109829.html
परिपत्र संदर्भ कोई समस्या उत्पन्न होती है कि जब वहाँ दो वस्तुओं है कि अन्य प्रत्येक का उल्लेख कर रहे हैं। आइए मान लें कि आपके पास कक्षा ए है कक्षा बी को संदर्भित करता है। यदि कक्षा बी भी कक्षा ए को संदर्भित करता है, तो हमारे पास परिपत्र संदर्भ है। यह कई स्थितियों में होता है। के लिए एक सामान्य उदाहरण यह माता-पिता-बच्चे संबंध ऑब्जेक्ट्स के बीच है, जहां बच्चे मूल ऑब्जेक्ट के साथ इंटरैक्ट करता है और में माता-पिता ऑब्जेक्ट का संदर्भ भी है। यह ऑब्जेक्ट्स का कारण बन सकता है जो तक साफ़ नहीं किया जाएगा, एप्लिकेशन बंद हो गया था। कचरा संग्रह का .NET तरीका सर्कुलर संदर्भ की समस्या हल करता है क्योंकि कचरा कलेक्टर किसी भी ऑब्जेक्ट को साफ़ करने के लिए रूट से पहुंचने योग्य है।
संपादित करें:
इस पोस्ट से आंकना: http://blogs.msdn.com/abhinaba/archive/2009/01/27/back-to-basics-reference-counting-garbage-collection.aspx यह है कि नेट के कचरा संग्रहण कचरा संग्रहण के लिए संदर्भ गिनती पर आधारित नहीं है लगता है।
एक अन्य लेख को पढ़ने के लायक (विस्तार से कचरा संग्रहण बताते हैं) इस एक है: http://www.simple-talk.com/dotnet/.net-framework/understanding-garbage-collection-in-.net/
"यह रूट से पहुंच योग्य नहीं है" –
- 1. किसी ऑब्जेक्ट को परिपत्र संदर्भों से कैसे सहेजना है?
- 2. ऑब्जेक्ट संदर्भों पर कचरा संग्रह कैसे काम करता है?
- 3. डॉटट्रेस प्रदर्शन प्रोफाइलर का मतलब क्या है [कचरा संग्रह]?
- 4. सीएलआर कहता है कि किसी ऑब्जेक्ट को फाइनलाइज़र कहां है?
- 5. क्या नया एलआईएसपी कचरा संग्रह का उपयोग करता है?
- 6. सी # कचरा संग्रहण का संदर्भ
- 7. जनरेशन 2 भरने पर कचरा संग्रहण के दौरान क्या होता है?
- 8. पृथक चक्रीय संदर्भों के साथ कचरा संग्रहण व्यवहार?
- 9. पाइथन के कचरा कलेक्टर परिपत्र संदर्भों का पता कैसे लगाता है?
- 10. परिपत्र संदर्भों के साथ वस्तुओं पर in_array
- 11. बहु और कचरा संग्रहण
- 12. कचरा संग्रहण तंत्र कैसे काम करता है?
- 13. कचरा संग्रहण गारंटी
- 14. कब कचरा संग्रहण
- 15. लुआ: कचरा संग्रहण + userdata
- 16. अत्यंत लंबे कचरा संग्रहण बार
- 17. 'थ्रेड सुरक्षित' ऑब्जेक्ट का क्या अर्थ है?
- 18. क्या किसी प्रतिनिधि का संदर्भ किसी ऑब्जेक्ट का संदर्भ (कचरा संग्रहण को रोकने के लिए) करता है?
- 19. आई 18 एन सुरक्षित मतलब क्या है?
- 20. क्या कोई कचरा संग्रहण एल्गोरिदम है जो इन आवश्यकताओं को पूरा करता है?
- 21. रूबी क्लास ऑब्जेक्ट कचरा संग्रह
- 22. इनमें से कौन सा ऑब्जेक्ट कचरा संग्रहण के लिए योग्य है?
- 23. जावास्क्रिप्ट/कचरा कलेक्टर में परिपत्र संदर्भ
- 24. एसक्यूएल सीएलआर संग्रहीत प्रक्रियाओं में अपवाद फेंकना
- 25. क्या "प्रोत्साहित" .NET कचरा संग्रह के संदर्भों को रद्द करने का कोई लाभ है?
- 26. सीएलआर होस्टिंग क्या है?
- 27. क्या कोई सीएलआर है जो सीएलआर पर चलता है?
- 28. जेएक्सबी 2 के ऑब्जेक्ट फैक्ट्री कक्षाओं का क्या मतलब है?
- 29. ऑब्जेक्ट फेंकना std :: out_of_range
- 30. MethodImplOptions.InternalCall का क्या मतलब है?
एक बहुत अच्छा स्वीकार किए जाते हैं जवाब के साथ एक समान प्रश्न के लिए यहाँ देखें http://stackoverflow.com/questions/400706/circular-references -कॉज-मेमोरी-रिसाव –
@ डेविड: एजेड ने कहा कि यह संदर्भ संदर्भ गणना का उपयोग नहीं करता है। –
@ जोहान्स: यह मेरी टिप्पणी में एक टाइपो था, मेरा मतलब था कि प्रश्न (जवाब नहीं) प्रारंभिक प्रश्न यह था कि सीएलआर में संदर्भ गिनती के उपयोग से चक्र असुरक्षित हो गए थे। प्रश्न (एजेड द्वारा जवाब नहीं) इस बारे में गलत था कि सीएलआर जीसी कैसे करता है। –