ExpertiDict

Java · Intermediário · Inglês · Técnico

CompletableFuture

/kəmˈpliːtəbəl ˈfjuːtʃər/substantivo

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()); // ANA

Exemplos

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.

Veja também

Todos os termos de Java