У меня возникла ситуация, когда мне нужно реализовать рекурсию с CompletableFuture
. Я хочу вызывать recursionFuture(ex)
всякий раз, когда любой из CompletableFuture
возвращает какой-либо результат, но я не уверен, как это реализовать. В текущей ситуации 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();
}
}