Concurrency Iniciante

Use try-with-resources para encerramento automático do executor.

✕ Java 8
ExecutorService exec =
    Executors.newCachedThreadPool();
try {
    exec.submit(task);
} finally {
    exec.shutdown();
    exec.awaitTermination(
        1, TimeUnit.MINUTES);
}
✓ Java 19+
try (var exec =
        Executors.newCachedThreadPool()) {
    exec.submit(task);
}
// auto shutdown + await on close
Viu um problema com este código? Nos avise.
🧹

Limpeza automática

O encerramento acontece automaticamente ao sair do bloco.

🛡️

Sem vazamentos

O executor sempre é encerrado, mesmo se ocorrerem exceções.

📖

Padrão familiar

Mesmo try-with-resources usado para arquivos, conexões, etc.

Abordagem Antiga
Encerramento manual
Abordagem Moderna
try-with-resources
Desde o JDK
19
Dificuldade
Iniciante
Fechamento automático do ExecutorService
Disponível

Amplamente disponível desde o JDK 19 (setembro de 2022)

Desde o Java 19, ExecutorService implementa AutoCloseable. O método close() chama shutdown() e aguarda a conclusão das tarefas. Chega de padrões manuais de try/finally para encerramento.

Compartilhar 𝕏 🦋 in