Chiusura automatica ExecutorService
Usa try-with-resources per lo shutdown automatico dell'executor.
Confronto Codice
✕ 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
Vedi un problema con questo codice? Faccelo sapere.
Perché vince l'approccio moderno
Pulizia automatica
Lo shutdown avviene automaticamente quando il blocco termina.
Nessuna perdita
L'executor si spegne sempre, anche se si verificano eccezioni.
Pattern familiare
Stesso try-with-resources usato per file, connessioni, ecc.
Approccio Vecchio
Shutdown manuale
Approccio Moderno
try-with-resources
Dal JDK
19
Difficoltà
Principiante
Supporto JDK
Chiusura automatica ExecutorService
Disponibile
Ampiamente disponibile dal JDK 19 (settembre 2022)
Come funziona
Da Java 19, ExecutorService implementa AutoCloseable. Il metodo close() chiama shutdown() e attende il completamento dei task. Niente più pattern try/finally per lo shutdown manuale.
Documentazione Correlata