Представьте себе, что мы имеем следующую фиктивный код:Как CompletableFuture знает, что задачи независимы?
CompletableFuture<BigInteger> cf1 = CompletableFuture.supplyAsync(() -> BigInteger.valueOf(2L));
CompletableFuture<BigInteger> cf2 = CompletableFuture.supplyAsync(() -> BigInteger.valueOf(3L));
cf1.thenCombine(cf2, (x, y) -> x.add(y)).thenAccept(System.out::println);
ли JVM знает, что cf1
и cf2
несут независимые потоки в этом случае? И что изменится, если потоки будут зависеть (например, использовать одно соединение с базой данных)?
Подробнее общая, как CompletableFuture
синхронизировать темы?
Большое вам спасибо! – Everv0id