Android पर सामान्य जावा वातावरण में समान नियम लागू होते हैं। जावा में थ्रेड्स मारे नहीं जाते हैं, लेकिन एक थ्रेड का ठहराव एक सहकारी तरीके से किया जाता है । थ्रेड को समाप्त करने के लिए कहा जाता है और थ्रेड फिर शालीनतापूर्वक बंद हो सकता है।
अक्सर एक volatile booleanफ़ील्ड का उपयोग किया जाता है जो थ्रेड समय-समय पर जांचता है और समाप्त होता है जब इसे संबंधित मान पर सेट किया जाता है।
मैं यहboolean जांचने के लिए उपयोग नहीं करूंगा कि धागा समाप्त होना चाहिए या नहीं । यदि आप volatileएक फ़ील्ड संशोधक के रूप में उपयोग करते हैं , तो यह विश्वसनीय काम करेगा, लेकिन यदि आपका कोड अधिक जटिल हो जाता है, तो इसके बजाय whileलूप के अंदर अन्य अवरुद्ध तरीकों का उपयोग करता है , ऐसा हो सकता है, कि आपका कोड बिल्कुल भी समाप्त नहीं होगा या कम से कम आपको अधिक समय लगेगा। चाह सकता है।
कुछ अवरोधक पुस्तकालय विधियाँ रुकावट का समर्थन करती हैं।
प्रत्येक धागे में पहले से ही एक बूलियन ध्वज बाधित स्थिति है और आपको इसका उपयोग करना चाहिए। इसे इस तरह लागू किया जा सकता है:
public void run() {
try {
while(!Thread.currentThread().isInterrupted()) {
}
} catch (InterruptedException consumed)
}
}
public void cancel() { interrupt(); }
प्रैक्टिस में जावा कॉनसेरी से लिया गया सोर्स कोड । चूंकि cancel()विधि सार्वजनिक है, आप इस विधि को एक और धागा दे सकते हैं जैसा आप चाहते थे।
एक खराब नामित स्थैतिक विधि भी है interruptedजो वर्तमान थ्रेड की बाधित स्थिति को साफ करती है।