मेरे पास कुछ कोड है जो किसी अन्य थ्रेड के लिए अनुरोध सबमिट करता है जो उस अनुरोध को अभी तक एक और थ्रेड सबमिट नहीं कर सकता है या नहीं। इससे Future<Future<T>>
का रिटर्न प्रकार मिलता है। क्या यह Future<T>
में तुरंत चालू करने के लिए कुछ गैर-जघन्य तरीका है जो पूरी भविष्य श्रृंखला के पूरा होने की प्रतीक्षा करता है?भविष्य <Future<T>> भविष्य में <T> में बदलने का कोई आसान तरीका है?
मैं पहले से ही अन्य मज़ेदार समवर्ती सामानों को संभालने और Google संग्रह के प्रतिस्थापन के रूप में और इसके कामकाजी के रूप में अच्छी तरह से काम करने के लिए गुवा पुस्तकालय का उपयोग कर रहा हूं लेकिन मुझे इस मामले के लिए कुछ नहीं मिल रहा है।)
public class UnwrapFuture<T> implements Future<T> {
Future<Future<T>> wrappedFuture;
public UnwrapFuture(Future<Future<T>> wrappedFuture) {
this.wrappedFuture = wrappedFuture;
}
public boolean cancel(boolean mayInterruptIfRunning) {
try {
return wrappedFuture.get().cancel(mayInterruptIfRunning);
} catch (InterruptedException e) {
//todo: do something
} catch (ExecutionException e) {
//todo: do something
}
}
...
}
आप अपवादों कि मिल (से निपटने के लिए होगा बढ़ा सकते हैं लेकिन अन्य तरीकों नहीं कर सकते हैं:
यदि आप कर सकते हैं तो यह सहायक होगा थोड़ा और संदर्भ जोड़ें। स्पष्ट जवाब है() को कॉल करना, लेकिन शायद यह नहीं है कि आप क्या चाहते हैं। –
हो गया। क्षमा करें यह स्पष्ट नहीं था। – Nik
लगता है जैसे आपको मोनाड – user