2011-04-12 15 views
19

मेरे पास दो धागे हैं: मुख्य धागा और मुख्य थ्रेड से उत्पन्न थ्रेड।मुख्य थ्रेड निकास पर कार्यक्रम की समाप्ति?

जब मुख्य धागा निकलता है, तो पूरा कार्यक्रम समाप्त हो जाएगा?

+0

किसी भी धागा कॉल System.exit() कार्यक्रम से बाहर निकल सकते हैं, लेकिन सभी मुख्य करता है, तो वापसी है, गैर डेमॉन धागे आवेदन चलते रहेंगे। –

+7

इस तरह कुछ अच्छी तरह से परिभाषित करने के लिए आपको वास्तव में इसे पहले देखना चाहिए; आपको जवाब मिल जाएगा, और यदि आपके पास अभी भी कोई प्रश्न है तो आप एक कोड स्निपेट पोस्ट कर सकते हैं जो चर्चा को उन लोगों के लिए अधिक मूल्यवान बना देगा जिनके पास एक ही प्रश्न था। – coffeetocode

उत्तर

26

सं

जावा कार्यक्रमों को समाप्त जब सभी गैर डेमॉन धागे खत्म।

documentation कहता है:

एक जावा वर्चुअल मशीन शुरू होता है, वहां आम तौर पर है एक गैर डेमॉन धागा (जो आम तौर विधि कुछ नामित वर्ग के मुख्य नामित कॉल)। जावा वर्चुअल मशीन तक धागे निष्पादित करने के लिए निम्न में से या तो जारी है होता है:

  • वर्ग Runtime की exit विधि बुलाया गया है और सुरक्षा प्रबंधक बाहर निकलें कार्रवाई की अनुमति है जगह लेने के लिए।
  • सभी थ्रेड कि डेमॉन धागे नहीं हैं मृत्यु हो गई है, या तो एक अपवाद है कि run विधि से परे प्रसारित फेंक कर run विधि या करने के लिए कॉल से वापस लौट कर।

आप क्रम एक धागा के लिए इंतजार नहीं करना चाहते हैं, setDaemon method कहते हैं।

2

सं मुख्य थ्रेड गैर-दानव धागा है, जब तक कि आपका बच्चा धागा राक्षस धागा न हो, तब तक प्रोग्राम समाप्त नहीं होगा जब मुख्य धागा बाल धागे से पहले खत्म हो जाए। आप नीचे नमूना कार्यक्रम का उपयोग कर जांच सकते हैं।

public class app { 

public static void main(String[] args) throws InterruptedException { 
    app2.mt=Thread.currentThread(); 
    app2 t = new app2(); 
    t.start(); 
    System.out.println("Main starts"); 
    Thread.sleep(2000); 
    System.out.println("Main ends"); 

    } 
} 

class app2 extends Thread{ 
static Thread mt; 
public void run(){ 
    try { 
     mt.join();//waits till main thread dies. 
    } catch (InterruptedException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    System.out.println("child thread"); 
    } 
} 
संबंधित मुद्दे