Executor Service Sızıntısı (ARCH4040)
Anahtar java.async.executor-service-leak · Önem warning · Kategori async
Executors.newFixedThreadPool ile oluşturulan ve hiç shutdown() çağrılmayan bir ExecutorService, non-daemon thread’leri sızdırır ve JVM’in kapanmasını engelleyebilir.
Hatalı
Bölüm başlığı “Hatalı”void run(List<Task> tasks) { ExecutorService pool = Executors.newFixedThreadPool(4); tasks.forEach(t -> pool.submit(t)); // hiç kapatılmadı}void run(List<Task> tasks) { ExecutorService pool = Executors.newFixedThreadPool(4); try { tasks.forEach(pool::submit); } finally { pool.shutdown(); }}Düzeltme
Bölüm başlığı “Düzeltme”ExecutorService’i finally içinde shutdown() ile kapatın veya try-with-resources kullanın.