Encadeamento com CompletableFuture
Encadeie operações assíncronas sem bloquear, usando CompletableFuture.
Comparação de Código
✕ Pre-Java 8
Future<String> future =
executor.submit(this::fetchData);
String data = future.get(); // blocks
String result = transform(data);
✓ Java 8+
CompletableFuture.supplyAsync(
this::fetchData
)
.thenApply(this::transform)
.thenAccept(IO::println);
Viu um problema com este código? Nos avise.
Por que a forma moderna ganha
Encadeável
Componha etapas assíncronas em um pipeline legível.
Sem bloqueio
Nenhuma thread fica ociosa esperando resultados.
Tratamento de erros
exceptionally() e handle() para recuperação limpa de erros.
Abordagem Antiga
Future.get() bloqueante
Abordagem Moderna
CompletableFuture
Desde o JDK
8
Dificuldade
Intermediário
Suporte JDK
Encadeamento com CompletableFuture
Disponível
Amplamente disponível desde o JDK 8 (março de 2014)
Como funciona
CompletableFuture permite pipelines assíncronos sem bloqueio. Encadeie operações com thenApply, thenCompose e thenAccept. Trate erros com exceptionally(). Combine múltiplos futures com allOf/anyOf.
Documentação Relacionada