İçeriğe geç

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.

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();
}
}

ExecutorService’i finally içinde shutdown() ile kapatın veya try-with-resources kullanın.