कैसे जावा में एक चल धागा को मारने के लिएजावा में चल रहे थ्रेड को मारना?
उत्तर
आपको लगता है कि इसी तरह के अर्थ विज्ञान के साथ कुछ अन्य तरीके मौजूद हैं बुला Thread.interrupt()
नोट से, धागा बाधित करने के लिए पूछ सकते हैं - stop()
और destroy()
- लेकिन वे कर रहे हैं पदावनत , क्योंकि वे unsafe हैं। उनका उपयोग करने के लिए लुभाने मत बनो।
। नष्ट() को वंचित नहीं किया गया है। – JavaUser
बोझो के "असुरक्षित" लिंक को देखें, विशेष रूप से "थ्रेड.स्टॉप()" अनुभाग के बजाय मुझे क्या उपयोग करना चाहिए, ताकि * थ्रेड * को मारने के लिए कैननिकल तरीके को देखा जा सके। इंटरप्ट केवल मौजूदा चलने वाले ब्लॉकिंग कॉल को चलने से रोकने का कारण बनता है, लेकिन खुद को थ्रेड को निष्पादित करने से रोक नहीं पाएगा। –
@JavaUser यह जावा 1.5 – Bozho
कुछ ही समय आप Thread.interrupt()
जरूरत है और अधिक जानकारी के लिए इस लेख Why Are Thread.stop
, Thread.suspend
,Thread.resume
and Runtime.runFinalizersOnExit
Deprecated? में खंड How do I stop a thread that waits for long periods (e.g., for input)
इसे चेक करें।
बोझो ने कहा, Thread.interrupt() इसे करने का सामान्य और सही तरीका है। लेकिन याद रखें कि इसे धागे को सहयोग करने की आवश्यकता है; एक थ्रेड को लागू करना बहुत आसान है जो बाधा अनुरोधों को अनदेखा करता है।
कोड के एक टुकड़े को इस तरह से बाधित करने के लिए, इसे किसी भी इंटरप्टेड अपवाद को अनदेखा नहीं करना चाहिए, और इसे प्रत्येक लूप पुनरावृत्ति (थ्रेड.currentThread() का उपयोग करके अवरोध ध्वज की जांच करनी चाहिए। अंतर्निहित() है। इसके अलावा, इसमें कोई भी गैर-अवरोधक अवरोधन संचालन नहीं होना चाहिए। यदि ऐसे परिचालन मौजूद हैं (उदा। सॉकेट पर प्रतीक्षा करना), तो आपको अधिक विशिष्ट बाधा कार्यान्वयन की आवश्यकता होगी (उदाहरण के लिए सॉकेट बंद करना)।
- 1. जावा में एक थ्रेड को कैसे मारना है जो राज्य में चल रहा है?
- 2. एक चल रहे थ्रेड को बाधित/मारें
- 3. धागे में चल रहे जावा तरीके
- 4. चल रहे जावा एप्लिकेशन
- 5. चल रहे जावा एप्लिकेशन
- 6. जावा में वर्तमान में चल रहे थ्रेड की संख्या को कैसे जांचें?
- 7. जावा में फ़ंक्शन कॉल को अवरुद्ध करने के लिए प्रतीक्षा कर रहे थ्रेड को कैसे मारना है?
- 8. जेएफआरएएम पर चल रहे थ्रेड को बंद करें
- 9. चल रहे JVM
- 10. एक चल रहे JVM
- 11. किसी अन्य चल रहे जावा एप्लिकेशन
- 12. ps -axl के साथ लिनक्स पर चल रहे जावा थ्रेड को कैसे ढूंढें?
- 13. जावा में कुछ निर्दिष्ट समय सीमा के बाद थ्रेड को मारना
- 14. जावा - ThreadPoolExecutor चल रहे कार्यों को रद्द करें
- 15. पृष्ठभूमि में चल रहे एप्लिकेशन
- 16. जावा में चल रहे फ़ाइल का नाम प्राप्त करें?
- 17. चल रहे टोमकैट
- 18. चल रहे एप्लिकेशन 'https'
- 19. AVCaptureSession के चल रहे
- 20. चल रहे प्रक्रिया (यूनिक्स)
- 21. चल रहे विंडोज़ सेवा
- 22. चल रहे एक्स सर्वर
- 23. मैं विंडोज सेवा में चल रहे सी # .NET थ्रेड को सुरक्षित रूप से कैसे रोकूं?
- 24. किसी अन्य वर्ग में चल रहे किसी अन्य थ्रेड से UI को अपडेट करने के लिए
- 25. क्या किसी को हमेशा सी # में चल रहे थ्रेड ऑब्जेक्ट का संदर्भ रखना चाहिए?
- 26. केवल एक थ्रेड में चल रहे कई 'धागे' को कार्यान्वित करने के लिए
- 27. चल रहे प्रक्रिया को संभाल लें
- 28. मैं अपने थ्रेड ऑब्जेक्ट का उपयोग कर std :: थ्रेड को मारना चाहता हूं?
- 29. वेब सर्वर में चल रहे डार्ट
- 30. पृष्ठभूमि में चल रहे विंडोज फोन ऐप
संभव डुप्ली: http://stackoverflow.com/questions/94011/how-to-abort-a-thread-in-a-fast-and-clean-way-in-java –