डेमन थ्रेड्स आमतौर पर यूजर थ्रेड्स के लिए सेवाएं करने के लिए उपयोग किए जाते हैं। एप्लिकेशन थ्रेड का main() मेथड एक यूजर थ्रेड (नॉन-डेमन थ्रेड) है। JVM तब तक समाप्त नहीं होता जब तक सभी यूजर थ्रेड (नॉन-डेमन) समाप्त नहीं हो जाते। हम setDaemon(true) को कॉल करके यूजर थ्रेड द्वारा बनाए गए थ्रेड को स्पष्ट रूप से डेमन थ्रेड होने के लिए निर्दिष्ट कर सकते हैं। यह निर्धारित करने के लिए कि कोई थ्रेड डेमन थ्रेड है या नहीं, isDaemon() मेथड का उपयोग करके किया जा सकता है।
उदाहरण
public class UserDaemonThreadTest extends Thread {
public static void main(String args[]) {
System.out.println("थ्रेड नाम है: " + Thread.currentThread().getName());
// जांचें कि मुख्य थ्रेड डेमन है या यूजर थ्रेड
System.out.println("क्या मुख्य थ्रेड डेमन है? : " + Thread.currentThread().isDaemon());
UserDaemonThreadTest t1 = new UserDaemonThreadTest();
UserDaemonThreadTest t2 = new UserDaemonThreadTest();
// t1 (यूजर थ्रेड) को डेमन थ्रेड में बदलना
t1.setDaemon(true);
t1.start();
t2.start();
}
public void run() {
// थ्रेड्स डेमन हैं या नहीं जांचना
if (Thread.currentThread().isDaemon()) {
System.out.println(Thread.currentThread().getName() + " एक डेमन थ्रेड है");
} else {
System.out.println(Thread.currentThread().getName() + " एक यूजर थ्रेड है");
}
}
}
आउटपुट
थ्रेड नाम है: main क्या मुख्य थ्रेड डेमन है? : false Thread-0 एक डेमन थ्रेड है Thread-1 एक यूजर थ्रेड है