Concurrency Débutant

Utilisez try-with-resources pour la fermeture automatique de l'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
Un problème avec ce code ? Dites-le nous.
🧹

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
Fermeture automatique d'ExecutorService
Disponible

Disponible depuis JDK 19 (sept. 2022)

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.

Partager 𝕏 🦋 in