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