Да, они выполняются одновременно, если у вас достаточно потоков в общем пуле разветвления / объединения. Метод allOf
возвращает новый CompletableFuture
, который завершается, когда все заданные CompletableFutures
завершены. Но у вас нет возможности объединить результат, поэтому он здесь не нужен.
Еще один момент, который необходимо учитывать, заключается в том, что вызов метода future.get()
для получения результата. Этот вызов метода блокирует и будет держать ваш вызывающий поток в состоянии блокировки.
Итак, вот лучший способ сделать это,
stsTask.thenCombine(dssmTask, (stsList, dssmList) -> processResult(stsList, dssmList));