की सूची पर स्ट्रीम करने का सबसे प्रभावी तरीका मैं वस्तुओं की सूची पर स्ट्रीमिंग करके एसिंक क्लाइंट विधि को कॉल कर रहा हूं। विधि भविष्य लौटाता है।फ्यूचर्स
कॉल के बाद लौटाए गए फ़्यूचर्स की सूची में पुन: प्रयास करने का सबसे अच्छा तरीका क्या है (ताकि उन भविष्य को संसाधित करने के लिए जो पहले आता है)?
नोट: एसिंक क्लाइंट केवल भविष्य को पूरा करने वाला भविष्य नहीं देता है।
के बाद कोड है:
List<Future<Object>> listOfFuture = objectsToProcess.parallelStream()
.map((object) -> {
/* calling an async client returning a Future<Object> */ })
.collect(Collectors.toList());
आप एक CompletionService का उपयोग कर के बजाय एक सरणी के लिए परिणाम मानचित्रण पर गौर किया? http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/CompletionService.html –
शायद [CompletionService] का प्रयास करें (http://docs.oracle.com/javase/7/docs/ एपीआई/जावा/util/समवर्ती/CompletionService.html)? यहां एक [स्पष्टीकरण] है (http://stackoverflow.com/a/19348417/6785649)। –
'CompletionService' काफी बेकार है यदि आपके पास उस कोड पर नियंत्रण नहीं है जो' भविष्य 'बनाता है/नौकरी को' निष्पादक 'को प्रस्तुत करता है। – Holger