runAsyn c принимает Runnable в качестве входного параметра и возвращает CompletableFuture<Void>
, что означает, что он не возвращает никакого результата.
CompletableFuture<Void> run = CompletableFuture.runAsync(()-> System.out.println("hello"));
Но suppyAsyn c принимает Поставщика в качестве аргумента и возвращает CompletableFuture<U>
со значением результата, что означает, что он не принимает никаких входных параметров, но возвращает результат как вывод.
CompletableFuture<String> supply = CompletableFuture.supplyAsync(() -> {
System.out.println("Hello");
return "result";
});
System.out.println(supply.get()); //result
Вывод: Поэтому, если вы хотите, чтобы результат был возвращен, выберите supplyAsync
или, если вы просто хотите выполнить асинхронное действие c, выберите runAsync
.