Concurrency Początkujący

Używaj try-with-resources do automatycznego zamknięcia executora.

✕ 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
Widzisz problem z tym kodem? Daj nam znać.
🧹

Automatyczne sprzątanie

Zamknięcie następuje automatycznie po wyjściu z bloku.

🛡️

Bez wycieków

Executor zawsze się zamknie, nawet przy wystąpieniu wyjątków.

📖

Znany wzorzec

Ten sam try-with-resources co dla plików, połączeń itp.

Stare podejście
Ręczne zamknięcie
Nowoczesne podejście
try-with-resources
Od JDK
19
Poziom trudności
Początkujący
Automatyczne zamknięcie ExecutorService
Dostępne

Szeroko dostępne od JDK 19 (wrzesień 2022)

Od Java 19 ExecutorService implementuje AutoCloseable. Metoda close() wywołuje shutdown() i czeka na zakończenie zadań. Koniec z ręcznymi wzorcami try/finally do zamykania.