【发布时间】:2016-09-24 08:24:27
【问题描述】:
我遇到了需要使用CompletableFuture 实现递归的情况。每当CompletableFutures 中的任何一个返回任何结果时,我都想调用recursionFuture(ex),但我不确定如何实现它。在当前情况下,recursionFuture(ex) 仅在 future1 和 future2 都返回输出时调用,然后如果条件正在检查。任何帮助将不胜感激。
public static void recursionFuture(ExecutorService ex)
{
try
{
CompletableFuture<Object> future1 = CompletableFuture.supplyAsync(() -> new ConcurrencyPoC_CompletableFuture().executeTask(), ex);
CompletableFuture<Object> future2 = CompletableFuture.supplyAsync(() -> new ConcurrencyPoC_CompletableFuture().executeTask(), ex);
if (future1.get() != null | future2.get() != null)
{
System.out.println("Future1: " + future1.get() + " Future2: " + future2.get());
recursionFuture(ex);
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
【问题讨论】:
标签: java multithreading threadpool executorservice completable-future