"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > फ्यूचर्स की सूची के लिए कुशलतापूर्वक प्रतीक्षा कैसे करें और अपवादों को कैसे संभालें?

फ्यूचर्स की सूची के लिए कुशलतापूर्वक प्रतीक्षा कैसे करें और अपवादों को कैसे संभालें?

2024-11-02 को प्रकाशित
ब्राउज़ करें:350

How to Efficiently Wait for a List of Futures and Handle Exceptions?

फ्यूचर्स की सूची पर कुशलतापूर्वक प्रतीक्षा करना

फ्यूचर्स की सूची से निपटते समय, लक्ष्य पूरा होने या उसके घटित होने तक इंतजार करना है किसी भी भविष्य में अपवाद. f.get() पर व्यक्तिगत कॉलों को शामिल करने वाला एक सरल दृष्टिकोण अनावश्यक प्रतीक्षा का कारण बन सकता है यदि कोई अपवाद जल्दी होता है।

CompletionService के साथ अनावश्यक प्रतीक्षा से बचना

इसका समाधान समस्या, कंप्लीशनसर्विस क्लास चलन में आती है। यह अतुल्यकालिक कार्यों को निष्पादित करने और उनके परिणाम उपलब्ध होते ही थ्रेड-सुरक्षित तरीके से पुनर्प्राप्त करने की अनुमति देता है। इसका उपयोग कैसे करें:

Executor executor = Executors.newFixedThreadPool(4);
CompletionService completionService = new ExecutorCompletionService(executor);

// Submit tasks to the service
for (int i = 0; i () {
        @Override
        public SomeResult call() {
            // Task logic here
            return result;
        }
    });
}

int received = 0;
boolean errors = false;

// Loop until all tasks are complete or an error occurs
while (received  resultFuture = completionService.take(); // Blocks if nothing available
    try {
        SomeResult result = resultFuture.get();
        received  ;
        // Process result here
    } catch (Exception e) {
        // Log error
        errors = true;
    }
}

// Consider canceling remaining tasks if an error occurred

कम्प्लीशनसर्विस दृष्टिकोण का उपयोग करके, आप वास्तविक समय में कार्यों के पूरा होने की निगरानी कर सकते हैं और यदि कोई त्रुटि होती है तो आगे की प्रक्रिया रोक सकते हैं, इस प्रकार अनावश्यक प्रतीक्षा से बच सकते हैं।

नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3