का उपयोग कर भविष्य के निर्माण की सूची के लिए कैसे प्रतीक्षा करें, इसलिए मुझे पता है कि यहां पहला उत्तर/टिप्पणी होगी "एक ExecutorService
का उपयोग करें और invokeAll
का उपयोग करें"। हालांकि, थ्रेड पूल को अलग रखने के लिए एक अच्छा कारण है (जिसे मैं लोगों के साथ नहीं बोलेगा)।विभिन्न 'निष्पादक सेवा'
तो मैं एक (ExecutorServices
) धागा पूल की सूची और क्या मैं (कोई समस्या नहीं) प्रत्येक थ्रेड पूल submit
का उपयोग करने पर एक अलग Callable
आह्वान करने की जरूरत है की है। अब मैं Future
उदाहरणों, एक अलग ExecutorService
पर बनाए गए प्रत्येक के इस संग्रह है, और मुझे उन सभी को (और समय समाप्त, जिस पर नहीं किया किसी भी रद्द कर देने में सक्षम हो) को पूरा करने के लिए इंतजार करना चाहते हैं।
क्या कोई मौजूदा वर्ग है जो ऐसा करेगा (Future
उदाहरणों की एक सूची लपेटें और सभी प्रतीक्षा किए जाने तक प्रतीक्षा करें)? यदि नहीं, तो एक कुशल तंत्र पर सुझावों की सराहना की जाएगी।
प्रत्येक के लिए एक समय समाप्ति के साथ get
बुला के बारे में सोच रहा था, लेकिन कुल समय प्रत्येक कॉल के लिए पारित कर दिया की एक गणना करना है।
मैंने यह पोस्ट Wait Until Any of Future is Done देखा लेकिन यह उनकी सूची को लपेटने के बजाय Future
बढ़ाता है।
प्रत्येक सूची के लिए और जब आखिरी व्यक्ति किया जाता है - जैसा कि वे कहते हैं –
अपडेट किया गया पोस्ट यह स्पष्ट करने के लिए कि टाइमआउट यह मुद्दा है और मैं उस संबंध में पहिया को फिर से नहीं खोलने की उम्मीद कर रहा हूं। –
अच्छी तरह से यदि आप उन निफ्टी लिल 'जावा डॉक्स को पढ़ते हैं तो आप देखेंगे कि आप प्रतीक्षा कर सकते हैं और जब आप अपना कार्य सबमिट करते हैं तो टाइमआउट सेट कर सकते हैं तो आप इसे बंद कर सकते हैं और यदि कार्य समय पर पूरा नहीं होता है तो यह आपके टाइमआउट के बाद खराब हो जाता है! !!! –