Concurrency Einsteiger

try-with-resources für das automatische Herunterfahren des Executors verwenden.

✕ 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
Problem mit diesem Code entdeckt? Sag uns Bescheid.
🧹

Automatische Bereinigung

Das Herunterfahren erfolgt automatisch beim Verlassen des Blocks.

🛡️

Keine Lecks

Der Executor wird immer heruntergefahren, auch bei Ausnahmen.

📖

Bekanntes Muster

Dasselbe try-with-resources wie für Dateien, Verbindungen usw.

Alter Ansatz
Manuelles Herunterfahren
Moderner Ansatz
try-with-resources
Seit JDK
19
Schwierigkeitsgrad
Einsteiger
ExecutorService automatisch schließen
Verfügbar

Weitgehend verfügbar seit JDK 19 (Sept. 2022)

Seit Java 19 implementiert ExecutorService AutoCloseable. Die Methode close() ruft shutdown() auf und wartet auf den Abschluss der Aufgaben. Keine manuellen try/finally-Shutdown-Muster mehr.

Teilen 𝕏 🦋 in