ExecutorService otomatik kapanma
Otomatik executor kapatma için try-with-resources kullanın.
Kod Karşılaştırması
✕ 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
Bu kodda bir sorun mu gördünüz? Bize bildirin.
Modern yöntem neden daha iyi
Otomatik temizleme
Blok çıkışında kapatma otomatik gerçekleşir.
Sızıntı yok
İstisnalar oluşsa bile executor her zaman kapanır.
Tanıdık kalıp
Dosyalar ve bağlantılar için kullanılan aynı try-with-resources.
Eski Yaklaşım
Elle Kapatma
Modern Yaklaşım
try-with-resources
JDK'dan itibaren
19
Zorluk
Başlangıç
JDK Desteği
ExecutorService otomatik kapanma
Mevcut
JDK 19'dan itibaren geniş çapta kullanılabilir (Eylül 2022)
Nasıl çalışır
Java 19'dan itibaren ExecutorService, AutoCloseable arayüzünü uygular. close() metodu shutdown() çağırır ve görevlerin tamamlanmasını bekler. Artık elle try/finally kapatma kalıplarına gerek yok.
İlgili Belgeler