कई बार मैंने इस बयान से मुलाकात की कि एप्लिकेशन को हमेशा खोले गए सभी संसाधनों को स्पष्ट रूप से बंद करना चाहिए।संसाधनों को बंद करना हमेशा महत्वपूर्ण है?
प्रोग्रामिंग के लिए मेरा दृष्टिकोण अपेक्षाकृत व्यावहारिक है और मैं किसी भी ऐसे सम्मेलन का अंधाधुंध पालन करना पसंद नहीं करता जिसे मैं स्पष्ट रूप से लाभ नहीं देखता। इसलिए मेरा सवाल है।
की कि मान लेते हैं:
- मैं एक छोटे से आवेदन
- यह कुछ ही संसाधनों (जैसे फाइल, डेटाबेस कनेक्शन, दूरस्थ धाराओं) को खोलता है और यह संसाधित करता है
- में कुछ मिनट के लिए और फिर से काम करता है यह बाहर निकालता है
- मान लें कि यह जावा में है (यदि भाषा प्रासंगिक है)
मैं वास्तव में सीएल के बारे में देखभाल करने के लिए है चलो मैंने खोले गए सभी संसाधनों का पालन किया? मुझे लगता है कि खोले गए सभी संसाधन बंद/रिलीज़ किए जाएंगे जब एप्लिकेशन/आभासी मशीन निकलती है। क्या मैं सही हू?
यदि यह सच है, तो ऐसे छोटे, छोटे कामकाजी आवेदनों में बंद संसाधनों की देखभाल करने के लिए कोई ठोस कारण हैं?
अद्यतन:
प्रश्न विशुद्ध रूप से काल्पनिक है, लेकिन देखभाल नहीं उस के बारे में के लिए तर्क यह है कि मैं हो सकता है सिर्फ एक साथ कुछ त्वरित स्क्रिप्ट हैकिंग जा और किसी भी अनावश्यक कोड सीधे संबंधित नहीं लिखने के लिए नहीं करना चाहती है हाथ में समस्या के लिए: संसाधनों को बंद करना, इस वर्बोज़ को कोशिश करना-आखिरकार सामान, अपवादों को संभालना, जिनकी मुझे परवाह नहीं है।
प्रश्न का मुद्दा यह है कि क्या व्यावहारिक परिणाम हैं ऐसा नहीं कर रहा
मुझे आपके लिए एक प्रश्न का उत्तर दें: आपको ** ** संसाधनों को बंद करने की परवाह क्यों नहीं करनी चाहिए? –
"अनुमान लगाएं कि मेरे द्वारा खोले गए सभी संसाधन बंद/जारी किए जाएंगे जब एप्लिकेशन/वर्चुअल मशीन निकलती है।" -> मेरा अनुमान है कि यह सच नहीं है। यदि आप बंद नहीं करते हैं और वीएम निकलता है, तो ओएस उन धाराओं/सॉकेट को बंद करने के लिए जिम्मेदार हो सकता है। – kosa
चेतावनियों से छुटकारा पाने के लिए आपको उन्हें दबाना होगा जो कि .close() के रूप में उतना ही काम है। यह भी एक अच्छा रूप है। –