Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

जावा में थ्रेड को समाप्त करना

उदाहरण

public class Main { 
    static volatile boolean exit = false; 
    
    public static void main(String[] args) { 
        System.out.println("मुख्य थ्रेड प्रारंभ हो रहा है"); 
        new Thread() { 
            public void run() { 
                System.out.println("आंतरिक थ्रेड प्रारंभ हो रहा है"); 
                while (!exit) { 
                    // प्रतीक्षा करें 
                } 
                System.out.println("आंतरिक थ्रेड समाप्त हो रहा है"); 
            } 
        }.start(); 
        
        try { 
            Thread.sleep(100); 
        } catch (InterruptedException e) { 
            System.out.println("अपवाद पकड़ा गया: " + e); 
        } 
        exit = true; 
        System.out.println("मुख्य थ्रेड समाप्त हो रहा है"); 
    } 
}

आउटपुट

मुख्य थ्रेड प्रारंभ हो रहा है 
आंतरिक थ्रेड प्रारंभ हो रहा है 
मुख्य थ्रेड समाप्त हो रहा है 
आंतरिक थ्रेड समाप्त हो रहा है

व्याख्या: मुख्य क्लास एक नया थ्रेड बनाती है और उस पर 'run' फंक्शन को कॉल करती है। यहां, 'exit' नामक एक बूलियन मान परिभाषित किया जाता है, जिसे प्रारंभ में false पर सेट किया जाता है। व्हाइल लूप के बाहर, 'start' फंक्शन को कॉल किया जाता है। ट्राई ब्लॉक में, नव निर्मित थ्रेड एक विशिष्ट समय के लिए सोता है जिसके बाद अपवाद पकड़ा जाएगा, और प्रासंगिक संदेश स्क्रीन पर प्रदर्शित होगा। इसके बाद, मुख्य थ्रेड समाप्त हो जाएगा क्योंकि exit का मान 'true' पर सेट हो जाएगा।

महत्वपूर्ण नोट्स:

  • volatile कीवर्ड सुनिश्चित करता है कि सभी थ्रेड्स को 'exit' चर का नवीनतम मान दिखाई दे
  • यह थ्रेड को सुरक्षित रूप से रोकने का एक सामान्य पैटर्न है
  • Thread.stop() का उपयोग न करें क्योंकि यह अप्रचलित और असुरक्षित है
  1. - जावा में यूजर थ्रेड और डेमन थ्रेड में अंतर?

    डेमन थ्रेड्स आमतौर पर यूजर थ्रेड्स के लिए सेवाएं करने के लिए उपयोग किए जाते हैं। एप्लिकेशन थ्रेड का main() मेथड एक यूजर थ्रेड (नॉन-डेमन थ्रेड) है। JVM तब तक समाप्त नहीं होता जब तक सभी यूजर थ्रेड (नॉन-डेमन) समाप्त नहीं हो जाते। हम setDaemon(true) को कॉल करके यूजर थ्रेड द्वारा बनाए गए थ्रेड को स्पष्ट

  1. - जावा में Runnable इंटरफेस लागू किए बिना थ्रेड कैसे बनाएं?

    थ्रेड को लाइटवेट प्रोसेस कहा जा सकता है। जावा मल्टीथ्रेडिंग का समर्थन करता है, इसलिए यह हमारे एप्लिकेशन को दो या अधिक कार्य समवर्ती रूप से करने की अनुमति देता है। सभी जावा प्रोग्राम्स में कम से कम एक थ्रेड होता है, जिसे मुख्य थ्रेड के रूप में जाना जाता है, जिसे जावा वर्चुअल मशीन (JVM) द्वारा प्रोग्

  1. - जावा में अनाम क्लास का उपयोग करके थ्रेड कैसे बनाएं?

    Thread एक कार्यक्षमता है जिसे प्रोग्राम के अन्य भाग के साथ समवर्ती रूप से निष्पादित किया जा सकता है। सभी जावा प्रोग्राम्स में कम से कम एक थ्रेड होता है, जिसे मुख्य थ्रेड के रूप में जाना जाता है, जिसे जावा वर्चुअल मशीन (JVM) द्वारा प्रोग्राम शुरू होने पर बनाया जाता है जब main() मेथड को मुख्य थ्रेड क