Fermeture automatique d'ExecutorService
Utilisez try-with-resources pour la fermeture automatique de l'executor.
Comparaison de Code
✕ 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
Un problème avec ce code ? Dites-le nous.
Pourquoi la méthode moderne gagne
Nettoyage automatique
La fermeture se fait automatiquement à la sortie du bloc.
Sans fuites
L'executor est toujours fermé, même si des exceptions se produisent.
Pattern familier
Le même try-with-resources utilisé pour les fichiers, connexions, etc.
Ancienne Approche
Fermeture manuelle
Approche Moderne
try-with-resources
Depuis JDK
19
Difficulté
Débutant
Support JDK
Fermeture automatique d'ExecutorService
Disponible
Disponible depuis JDK 19 (sept. 2022)
Comment ça fonctionne
Depuis Java 19, ExecutorService implémente AutoCloseable. La méthode close() appelle shutdown() et attend que les tâches se terminent. Fini les patterns manuels try/finally pour la fermeture.
Documentation Associée