ExecutorService
का उपयोग करते समय Executors.newSingleThreadExecutor()
द्वारा लौटाया गया, मैं इसे कैसे बाधित कर सकता हूं?निष्पादक सेवा के धागे को बाधित करने के लिए
उत्तर
ऐसा करने के लिए, execute()
पर कॉल करने के बजाय आपको submit()
को ExecutorService
पर एक कार्य करने की आवश्यकता है। जब आप ऐसा करते हैं, तो Future
वापस लौटाया जाता है जिसका उपयोग निर्धारित कार्य में हेरफेर करने के लिए किया जा सकता है। विशेष रूप से, आप वर्तमान में निष्पादित किए गए कार्य को बाधित करने के लिए Future
पर cancel(true)
पर कॉल कर सकते हैं (या कार्य निष्पादन को अभी तक शुरू नहीं होने पर पूरी तरह से निष्पादन छोड़ दें)।
वैसे, Executors.newSingleThreadExecutor()
द्वारा लौटाई गई वस्तु वास्तव में ExecutorService
है।
निष्पादक के आंतरिक रूप से प्रबंधित थ्रेड को बाधित करने का एक और तरीका shutdownNow(..)
विधि को ExecutorService
पर कॉल करना है। नोट, हालांकि, @ एरिक्सन के समाधान के विपरीत, इसके परिणामस्वरूप पूरे ThreadPoolExecutor
आगे के उपयोग के लिए अनुपयुक्त हो जाएंगे।
मैं इस दृष्टिकोण मामलों में जहां ExecutorService
अब जरूरत है और Future
उदाहरणों पर नजर रखने अन्यथा अनावश्यक है में विशेष रूप से उपयोगी है (यह जा रहा है आपके आवेदन की exit(..)
विधि का एक प्रमुख उदाहरण) पाते हैं। ExecutorService#shutdownNow(..)
javadocs से
प्रासंगिक जानकारी:
प्रयास सभी सक्रिय रूप से क्रियान्वित करने के कार्यों को रोकने के लिए, इंतजार कर रहे कार्यों के प्रसंस्करण रुकती है, और कार्य है कि निष्पादन का इंतजार कर रहे थे की एक सूची देता है।
सक्रिय रूप से कार्य निष्पादित करने को रोकने के सर्वोत्तम प्रयासों से परे कोई गारंटी नहीं है। उदाहरण के लिए, सामान्य कार्यान्वयन Thread.interrupt के माध्यम से रद्द हो जाएगा, इसलिए इंटरप्ट का जवाब देने में विफल होने वाला कोई भी कार्य कभी समाप्त नहीं हो सकता है।
- 1. क्या सिंगलटन निष्पादक सेवा
- 2. निष्पादक सेवा
- 3. एक निष्पादक सेवा
- 4. निष्पादक सेवा का उपयोग करने के क्या फायदे हैं?
- 5. जावा में निष्पादक सेवा -> निष्पादक का उपयोग करने के लिए सिंगल थ्रेड कोड को कैसे परिवर्तित करें
- 6. इकाई परीक्षण कैसे करें कि निष्पादक सेवा कार्य के लिए नए धागे को जन्म देती है?
- 7. सी # जावा निष्पादक सेवा के लिए समकक्ष। NewSingleThreadExecutor(), या: संसाधन
- 8. किसी निष्पादक सेवा में धागे का नाम कैसे बदलें?
- 9. निष्पादक सेवा, कैसे पता चलेगा कि सभी धागे मुख्य धागे को अवरुद्ध किए बिना समाप्त हुए?
- 10. विभिन्न 'निष्पादक सेवा'
- 11. निष्पादक में सभी धागे को समाप्त करने के लिए प्रतीक्षा करें?
- 12. कौन मेरे धागे को बाधित करता है?
- 13. जावा सर्वलेट में निष्पादक सेवा
- 14. धागे और निष्पादक का गहन शटडाउन
- 15. जावा में निष्पादक सेवा में सभी धागे को कैसे रोकें/फिर से शुरू करें?
- 16. सुरक्षा प्रबंधक के तहत मैं अपने स्वयं के निष्पादक सेवा को क्यों बंद नहीं कर सकता?
- 17. एक चल रहे थ्रेड को बाधित/मारें
- 18. आवेदन धागे बनाम सेवा धागे
- 19. Android AsyncTask के साथ निष्पादक सेवा का उपयोग कैसे करें?
- 20. जावा थ्रेड पूल/निष्पादक सेवा और प्रतीक्षा() एस - धागे और कार्य कतार के साथ क्या होता है?
- 21. एक सर्वलेट कंटेनर कब मेरे धागे को बाधित करेगा?
- 22. निष्पादक सेवा धीमी बहु थ्रेड प्रदर्शन
- 23. स्प्रिंग बीन्स एक निष्पादक सेवा के लिए थ्रेडलोकल उदाहरणों की तरह व्यवहार करते हैं
- 24. कई धागे को पूरा करने के लिए कैसे प्रतीक्षा करें?
- 25. धागे को लिखने और निष्पादित करने के लिए
- 26. बड़ी समाप्ति के लिए टैब पूर्णता बाधित
- 27. सेवा को हल करने के लिए कैसे करें स्थापना: सेवा के लिए परिभाषा नहीं मिल सका?
- 28. मुख्य धागे के बाहर MKMapView प्रस्तुत करने के लिए कैसे?
- 29. निष्पादक सेवा की आश्चर्यजनक प्रदर्शन ब्रेक-इवेंट पॉइंट --- अंगूठे के नियम?
- 30. क्या आप Future.cancel (true) के साथ BufferedReader.readLine() को बाधित कर सकते हैं?
इसके लिए काम करने के लिए, आपको मैन्युअल रूप से यह सुनिश्चित करने की ज़रूरत नहीं है कि थ्रेड बाधित है। सभी धागे बाधित नहीं हो सकते हैं। - मुझे वैसे भी लगता है। –
हां, यह वर्णन करता है कि कार्य को चलाने वाले धागे को कैसे बाधित करना है। क्या कार्य व्यवधान का जवाब देता है या नहीं, यह एक अन्य प्रश्न है। यह इस बात पर निर्भर करता है कि कार्य क्या कर रहा है। – erickson
@ एरिक्सन I के पास भी इसी तरह का सवाल है [यहां] (http://stackoverflow.com/questions/29159184/how-can-i-interrupt-resttemplate-call-as-soon-as-my-thread-is-interrupted) थ्रेड बाधा से संबंधित है। यदि संभव हो, तो क्या आप वहां पर मेरी मदद कर सकते हैं। मुझे अभी तक कोई प्रतिक्रिया नहीं मिली है इसलिए किसी भी मदद की सराहना की जाएगी। – john