2013-02-05 9 views
8

संभव डुप्लिकेट गारंटी है:
When Shutdown Hooks Break BadShutdownhook पर अमल किए जाने के लिए JVM दुर्घटनाओं

मुझे पता है कि अगर shutdownhook परिदृश्य में निष्पादित करने के लिए करता है, तो JVM दुर्घटनाओं की गारंटी है चाहता हूँ।

+0

ऐसा लगता है जैसे जावाडोक भी नहीं पढ़ा ... –

+2

ठीक है, अगर आप मशीन को बंद कर देते हैं, तो यह गारंटी है कि कुछ भी नहीं है अब और हो रहा है। निष्कर्ष: JVM JVM के बाहर की दुनिया को नियंत्रित नहीं कर सकता है। –

+0

क्या आपका मतलब एक जेवीएम क्रैश है? नहीं। अगर आपका मतलब अपवाद के बाद बंद होना है, तो उन्हें दौड़ना चाहिए। अधिकांश समय जब लोग एक जेवीएम क्रैश के बारे में बात करते हैं तो उनका मतलब है कि उनके कार्यक्रम ने अपवाद या त्रुटि फेंक दी है। –

उत्तर

11

नहीं। the docs से:

दुर्लभ परिस्थितियों में वर्चुअल मशीन निरस्त हो सकती है, यानी साफ-सफाई बंद किए बिना चलना बंद हो सकता है। यह तब होता है जब वर्चुअल मशीन को बाहरी रूप से समाप्त कर दिया जाता है, उदाहरण के लिए यूनिक्स पर सिगकिल सिग्नल या माइक्रोसॉफ्ट विंडोज पर टर्मिनेट प्रोसेस कॉल के साथ। वर्चुअल मशीन भी निरस्त हो सकती है यदि कोई देशी विधि अजीब हो जाती है, उदाहरण के लिए, आंतरिक डेटा संरचनाओं को दूषित करना या किसी भी प्रकार की स्मृति को एक्सेस करने का प्रयास करना। यदि वर्चुअल मशीन बंद हो जाती है तो कोई शट डाउन हुक चलाने के बारे में कोई गारंटी नहीं दी जा सकती है।

(जोर मेरा)

1

shutdownhook लेकिन जो कुछ भी JVM से पहले किया जाना करने के लिए आवश्यक कार्यों के लिए एक धागा बनाता है बंद शुरू होता है और यदि मशीन में ही बंद हो जाता है धागा shutdownhook द्वारा बनाई
कभी नहीं मिलेगा वहां निष्पादन के लिए सीपीयू चक्र और मुझे लगता है कि शट डाउनहूक निष्पादित नहीं होगा ...

+0

आपने पूछा कि क्या होता है यदि JVM क्रैश हो जाता है, तो नहीं होता कि कंप्यूटर जबरन बंद होने पर क्या होता है। बाद के मामले में, मुझे लगता है कि यह सहजता से स्पष्ट है कि सत्ता हटा दिए जाने के बाद कुछ भी नहीं (शटडाउन हुक भी नहीं) निष्पादित किया जाएगा। – nneonneo

+0

अरे धन्यवाद !! मैं सिर्फ जेवीएम के दुर्घटनाग्रस्त होने के संभावित परिदृश्यों पर काम कर रहा था .. –

संबंधित मुद्दे