दिलचस्प पोस्ट
क्या यह एच का उपयोग करने का सुझाव दिया है: सबकुछ के लिए आउटपुट टेक्स्ट? एंड्रॉइड में पार्सल का उपयोग कैसे करें? पिन के लिए Emacs बफ़र्स (cscope के लिए) क्रोम, जावास्क्रिप्ट, विंडो। नए टैब में खोलें Jquery getJSON चयन मेनू सवाल पॉप्युलेट स्पार्क में मल्टी लाइन इनपुट रिकॉर्ड की प्रक्रिया कैसे करें इकाई फ़्रेमवर्क (ईएफ) कोड प्रथम कैसकेड एक-से-शून्य-या-एक संबंध के लिए हटाएं स्ट्रीमिंग ऑब्जेक्ट के माध्यम से स्ट्रिंग में अन्तर्निहित रूपांतरण के माध्यम से अधिभार संकल्प असफलता START_STICKY और START_NOT_STICKY AngularJS गुंजाइश से एक आइटम कैसे निकालें स्वास्थ्यकैट पृष्ठभूमि डिलीवरी जब ऐप नहीं चल रहा है आईफ़ोन: वर्तमान मिलीसेकंड कैसे प्राप्त करें? नए भौतिक विषय में वापस तीर का रंग कैसे बदल सकता है? पीडीएफ जेनरेट करने के बाद प्रिंट डायल कैसे खोलें? यदि किसी ऐप को स्थापित किया गया है तो प्रोग्रामैटिक रूप से कैसे जांचें?

जावा में शट डाउन हुक का उपयोगी उदाहरण?

मैं यह सुनिश्चित करने की कोशिश कर रहा हूं कि मेरा जावा एप्लिकेशन मजबूत होने के लिए उचित कदम उठाएगा, और इसका एक हिस्सा अनुग्रहपूर्वक बंद करना शामिल है मैं शटडाउन हुक के बारे में पढ़ रहा हूं और वास्तव में उन्हें अभ्यास में इस्तेमाल करने का तरीका नहीं मिलता।

वहाँ एक व्यावहारिक उदाहरण है?

मान लीजिए कि मेरे पास वास्तव में एक साधारण अनुप्रयोग है, जो नीचे दिए गए इस एक तरह से है, जो एक फ़ाइल में नंबर लिखते हैं, एक पंक्ति में 10, 100 के बैचों में, और मुझे यह सुनिश्चित करना है कि यदि प्रोग्राम बाधित हो तो दिए गए बैच समाप्त हो जाए। मुझे एक शटडाउन हुक रजिस्टर करने का तरीका मिलता है लेकिन मुझे यह नहीं पता कि यह कैसे मेरे आवेदन में एकीकृत किया जाए। कोई सुझाव?

package com.example.test.concurrency; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.PrintWriter; public class GracefulShutdownTest1 { final private int N; final private File f; public GracefulShutdownTest1(File f, int N) { this.f=f; this.N = N; } public void run() { PrintWriter pw = null; try { FileOutputStream fos = new FileOutputStream(this.f); pw = new PrintWriter(fos); for (int i = 0; i < N; ++i) writeBatch(pw, i); } catch (FileNotFoundException e) { e.printStackTrace(); } finally { pw.close(); } } private void writeBatch(PrintWriter pw, int i) { for (int j = 0; j < 100; ++j) { int k = i*100+j; pw.write(Integer.toString(k)); if ((j+1)%10 == 0) pw.write('\n'); else pw.write(' '); } } static public void main(String[] args) { if (args.length < 2) { System.out.println("args = [file] [N] " +"where file = output filename, N=batch count"); } else { new GracefulShutdownTest1( new File(args[0]), Integer.parseInt(args[1]) ).run(); } } } 

वेब के समाधान से एकत्रित समाधान "जावा में शट डाउन हुक का उपयोगी उदाहरण?"

आप निम्न कर सकते हैं:

  • शट डाउन हुक को कुछ परमाणु बुलियन (या वाष्पशील बूलियन) को "रखरखाव" को झूठे में सेट करें
  • (वैकल्पिक रूप से, कार्य थ्रेड्स को .interrupt करें, यदि वे कुछ अवरुद्ध कॉल में डेटा की प्रतीक्षा करते हैं)
  • थ्रेड्स को कॉल करके, थ्रेड्स को writeBatch करके, काम करने वाले धागे के लिए प्रतीक्षा करें (अपने मामले में writeBatch को कार्यान्वित करें)।
  • प्रोग्राम को समाप्त करें

कुछ स्केच्चि कोड:

  • एक static volatile boolean keepRunning = true;
  • रन में () आप को बदलते हैं

     for (int i = 0; i < N && keepRunning; ++i) writeBatch(pw, i); 
  • मुख्य () में आप जोड़ते हैं:

     final Thread mainThread = Thread.currentThread(); Runtime.getRuntime().addShutdownHook(new Thread() { public void run() { keepRunning = false; mainThread.join(); } }); 

यह लगभग है कि मैं कैसे एक सुंदर "टर्मिनल में नियंत्रण-सी मारने पर सभी ग्राहकों को अस्वीकार कर देता हूं"


डॉक्स से :

जब वर्चुअल मशीन अपना शट डाउन अनुक्रम शुरू करती है तो यह कुछ अनिर्दिष्ट क्रम में सभी पंजीकृत शटडाउन हुक शुरू कर देगी और उन्हें समवर्ती रूप से चलाएगा। जब सभी हुक समाप्त हो जाते हैं, तो अंतिम रूप से ऑन-एक्जेट सक्षम होने पर, सभी असिंकित अंतिम उपकरण चलाएंगे। अंत में, वर्चुअल मशीन बंद हो जाएगी।

यही है, एक शटडाउन हुक जोवी तक चल रहा है जब तक हुक समाप्त नहीं हो जाता है ( रन () -मध्य से लौटा दिया जाता है।

शटडाउन हुक अनिर्धारित थ्रेड्स हैं जो रनटाइम.एडशूटडाउनहुक () के साथ पंजीकृत हैं। जेवीएम उस आदेश पर कोई गारंटी नहीं देता जिसमें शटडाउन हुक शुरू हो रहा है। अधिक जानकारी के लिए http://techno-terminal.blogspot.in/2015/08 देखें /shutdown-hooks.html