Java · Intermediário · Inglês · Técnico
CompletableFuture
Classe que representa um resultado futuro e permite compor etapas assíncronas, com thenApply, thenCompose e tratamento de erros, sem bloquear a thread.
Onde usar
Aparece em chamadas paralelas a serviços: supplyAsync, thenCombine, allOf. Em review: 'qual executor está rodando isso?'.
Em código
var f = CompletableFuture
.supplyAsync(() -> "ana")
.thenApply(String::toUpperCase)
.exceptionally(e -> "erro");
System.out.println(f.join()); // ANAExemplos
Combine both calls with thenCombine instead of blocking.
Combine as duas chamadas com thenCombine em vez de bloquear.
Pass your own executor to supplyAsync for blocking I/O.
Passe seu próprio executor ao supplyAsync para I/O bloqueante.
Cuidado
Sem passar um executor, supplyAsync usa o ForkJoinPool comum, que não serve para tarefas bloqueantes de I/O.