मैं इसके बारे में पिछले कुछ घंटों में काफ़ी पढ़ रहा था, और मैं बस नहीं किसी भी कारण (देख सकते हैं वैध कॉल करने के लिए कारण) shutdown()
पर ExecutorService
, जब तक कि हम एक humongous अनुप्रयोग है जो स्टोर, दर्जनों और उस के लिए इस्तेमाल नहीं कर रहे हैं विभिन्न निष्पादक सेवाओं के दर्जनों एक लम्बा समय।
केवल एक चीज (जो मैं इकट्ठा करता हूं) शटडाउन करता है, वह वही करता है जो एक सामान्य थ्रेड एक बार करता है। जब सामान्य थ्रेड रननीय (या कॉल करने योग्य) की रन विधि को समाप्त कर देगा, तो इसे एकत्र करने के लिए कचरा संग्रह में पास किया जाएगा। निष्पादक सेवा के साथ धागे बस पकड़ में डाल दिए जाएंगे, उन्हें कचरा संग्रह के लिए टिक नहीं किया जाएगा। उसके लिए शटडाउन की जरूरत है।
ठीक है मेरे सवाल पर वापस। क्या ExecutorService
बहुत बार, या यहां तक कि कुछ कार्यों को प्रस्तुत करने के बाद भी शटडाउन कॉल करने का कोई कारण है? मैं उस मामले को पीछे छोड़ना चाहूंगा जो कोई कर रहा है और इसके ठीक बाद कॉल करता है awaitTermination()
क्योंकि यह मान्य है। एक बार जब हम ऐसा कर लेते हैं, तो हमें फिर से एक नया ExecutorService
काम करना पड़ता है, वही काम करने के लिए। क्या ExecutorService
थ्रेड्स का पुन: उपयोग करने के लिए संपूर्ण विचार नहीं है ? तो ExecutorService
इतनी जल्दी नष्ट क्यों ?
क्या यह तर्कसंगत तरीका नहीं है कि आप बस ExecutorService
(या कितने आप की जरूरत के आधार पर) बना सकते हैं, फिर आवेदन चलाने के दौरान उनके पास आने वाले कार्यों को पास करने के लिए, और फिर आवेदन से बाहर निकलने या कुछ अन्य महत्वपूर्ण चरणों में उन निष्पादकों को बंद कर दें। ?
मुझे कुछ अनुभवी कोडर्स से जवाब चाहिए, जो एक्सक्लूसिव सर्विसेस का उपयोग करके बहुत सारे एसिंक्रोनस कोड लिखते हैं।
दूसरा पक्ष प्रश्न, एंड्रॉइड प्लेटफॉर्म के साथ थोड़ा छोटा सौदा। यदि आप में से कुछ कहेंगे कि हर बार निष्पादकों को बंद करना सबसे अच्छा विचार नहीं है, और आप एंड्रॉइड पर प्रोग्राम करते हैं, तो क्या आप मुझे बता सकते हैं कि आप उन शटडाउन को कैसे हैंडल करते हैं (विशिष्ट होने के लिए - जब आप उन्हें निष्पादित करते हैं) जब हम विभिन्न घटनाओं से निपटते हैं अनुप्रयोग जीवन चक्र।
कॉमन्सवेयर की टिप्पणी के कारण मैंने पोस्ट को तटस्थ बना दिया। मुझे वास्तव में इसके बारे में बहस करने में कोई दिलचस्पी नहीं है और ऐसा लगता है कि यह वहां अग्रणी है। मुझे केवल सीखने में दिलचस्पी है कि मैंने अनुभवी डेवलपर्स से यहां क्या पूछा, अगर वे अपने अनुभवों को साझा करने के लिए तैयार हैं। धन्यवाद।