2012-11-09 32 views
11

ScheduledExecutorService/Timer/Handler का उपयोग करने के पेशेवर और विपक्ष क्या हैं? जैसा कि मैं Timer के बजाय एंड्रॉइड में समझता हूं, इसे Handler का उपयोग करने की आवश्यकता है, लेकिन ScheduledExecutorService के बारे में क्या है?अनुसूचित एक्सप्लोरर सेवा बनाम टाइमर बनाम हैंडलर

जैसा कि मैं समझता हूं Handler और ScheduledExecutorService केवल सापेक्ष समय के लिए है, है ना?

+2

http://stackoverflow.com/questions/2333680/android-schedule-action – assylias

+2

टाइमर और अनुसूचित एक्सप्लोरर के बीच मुख्य अंतर: उत्तरार्द्ध कई धागे (थ्रेड पूल के माध्यम से) का उपयोग कर सकता है और अगले कार्य में देरी के जोखिम को हटा सकता है एक: http://stackoverflow.com/questions/409932/java-timer-vs-executorservice – assylias

+0

यह एक अच्छा स्पष्टीकरण दिखाता है http://stackoverflow.com/a/6558821/1016544 –

उत्तर

3

सभी तीन आपको एक अलग (उदाहरण के लिए गैर-मुख्य) धागे पर कार्यों को निष्पादित करने की अनुमति देते हैं। Handler आपको धागे के बीच सुरक्षित रूप से संवाद करने के लिए अभिनेता पैटर्न पास करने वाले संदेश का उपयोग करने की अनुमति देता है। यह आपको समय/देरी/आदि करने की अनुमति नहीं देता है।

ScheduledExecutorService एक बहुत ही सामान्य थ्रेडिंग प्रबंधन समाधान है। आप इसे कार्यकर्ता धागे के लिए एक निश्चित संख्या के साथ प्रारंभ करते हैं और फिर इसे कार्य इकाइयां देते हैं। आप देरी/समय दे सकते हैं और कार्य इकाइयों को दोहरा सकते हैं।

Timer कक्षा में एक साधारण एपीआई है जो एक समय, एक-थ्रेड उपयोग के लिए अनुसूचित एक्सेलसर्स सेवा जैसा दिखता है। आधिकारिक एपीआई इस वर्ग का उपयोग न करने का सुझाव देता है लेकिन इसके बजाय अपने स्वयं के अनुसूचित एक्सप्लोरर को रोल करता है।

+2

आप हैंडलर # पोस्टडेलेड (रननेबल, मध्यान्तर) – siliconeagle

संबंधित मुद्दे