मैं JVM बाहर निकलने पर एक डेमॉन धागा के रूप में एक धागा पर चिह्नित करने के प्रभाव से पूरी तरह वाकिफ है (यदि सभी गैर डेमॉन धागे से बाहर निकलें, JVM बाहर निकल जाएगा।)डेमॉन थ्रेड होने का क्या अर्थ है?
एक धागा स्थापित करने के लिए वहाँ अन्य दुष्प्रभाव हैं एक डेमॉन के रूप में?
(पूरी तरह से, जो कि अर्थशास्त्र को छोड़कर वास्तव में अप्रासंगिक है, इस मामले में पीछे की तरफ डेमॉन थ्रेड का अर्थ नहीं है: डेमॉन थ्रेड को JVM को जीवित नहीं रखना चाहिए ... उदाहरण के लिए, यदि मैंने लिखा मेरा अपना HTTP डिमन और इसे चलाना शुरू कर दिया, क्या मैं नहीं चाहता कि जब तक कि धागा जीवित न हो, तब तक JVM जीवित रहेगा? या 'डेमन' शब्द के लिए कुछ और अर्थपूर्ण है?)
आमतौर पर आपके पास डेमॉन थ्रेड और गैर-डिमन थ्रेड एक ही समय में चल रहे होते हैं: गैर-डिमन थ्रेड उपयोगी काम कर रहे हैं लेकिन डिमन थ्रेड बस बैठने के लिए प्रतीक्षा कर रहे हैं। उपयोगी काम करने के बाद, कार्यक्रम से बाहर निकलना चाहिए; आप नहीं चाहते हैं कि यह धागे से हो जो कुछ भी नहीं कर रहे हैं। आपके उदाहरण में, HTTP डिमन एक डेमन * प्रक्रिया * है, न कि डेमन थ्रेड। कोई एक डेस्कटॉप कंप्यूटर की कल्पना कर सकता है जो कोई गैर-डिमन प्रक्रिया चलने पर बंद हो जाता है, और आप नहीं चाहते कि कोई सर्वर इसे चालू रखे। (या शायद आप ... जो भी हो, यह सबसे अच्छा नाम नहीं है।) –
हाँ - मैं पूरी तरह से व्यवहार को समझता हूं, और इसे नियमित रूप से शोषण करता हूं। मेरा पूरी तरह से यादृच्छिक तरफ सिर्फ यह देखने के लिए एक सवाल था कि क्या दूसरे नाम के भ्रमित-नस्ल पर सहमत हैं :) – Jared
यह वास्तव में भ्रमित नहीं है, एक डिमन से बाहर निकलने की उम्मीद नहीं है - प्रोग्राम चलने पर हमेशा चलने के लिए, क्योंकि वे वास्तव में बाहर निकलें, उन्हें प्रोग्राम को बाहर निकलने से रोकना नहीं चाहिए। –