Java ExecutorService को शालीनता से बंद करना
Executors जावा अनुप्रयोगों में कार्यों को समवर्ती रूप से प्रबंधित और निष्पादित करने का एक सुविधाजनक तरीका है। हालाँकि, अनुचित शटडाउन से अप्रत्याशित व्यवहार या प्रदर्शन संबंधी समस्याएं हो सकती हैं। यह मार्गदर्शिका इस बात की विस्तृत व्याख्या प्रदान करती है कि किसी निष्पादक सेवा को ठीक से कैसे बंद किया जाए, यह सुनिश्चित करते हुए कि सभी कार्य समाप्त या रद्द कर दिए गए हैं। तरीके:
shutdown()
: मौजूदा कार्यों को पूरा करने की अनुमति देते हुए नए कार्यों को सबमिट होने से रोकता है।if (!pool.awaitTermination(60, TimeUnit.SECONDS))से
जबकि (!pool.awaitTermination(60, TimeUnit.SECONDS))void shutdownAndAwaitTermination(ExecutorService pool) {
pool.shutdown();
try {
// Wait for existing tasks to terminate
if (!pool.awaitTermination(60, TimeUnit.SECONDS)) {
pool.shutdownNow();
// Wait for tasks to respond to cancellation
if (!pool.awaitTermination(60, TimeUnit.SECONDS))
System.err.println("Pool did not terminate");
}
} catch (InterruptedException ie) {
pool.shutdownNow();
Thread.currentThread().interrupt();
}
}
शटडाउन विधियों का सारांशif (!pool.awaitTermination(60, TimeUnit.SECONDS))
shutdown()while (!pool.awaitTermination(60, TimeUnit.SECONDS))
shutdownNow()
: सभी निष्पादन और प्रतीक्षा कार्यों को रोक देता है, असंसाधित लौटाता है कार्य।awaitTermination(long timeout, TimeUnit Unit)
: तब तक ब्लॉक रहता है जब तक कि सभी कार्य पूरे नहीं हो जाते, टाइमआउट नहीं हो जाता, या वर्तमान थ्रेड बाधित नहीं हो जाता।अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3