Почему интерфейс ExecutorService не поддерживает AutoCloseable?
Неспособность позвонитьshutdown()
в потоке исполнитель приведет к никогда не завершающемуся приложению. Лучшая практика для закрытия ExecutorService заключается в следующем:
ExecutorService service = null;
try {
service = Executors.newSingleThreadExecutor();
// Add tasks to thread executor
…
} finally {
if(service != null) service.shutdown();
}
Поскольку Java знает концепцию «попробуй с ресурсами», было бы неплохо, если бы мы могли это сделать?
try (service = Executors.newSingleThreadExecutor())
{
// Add tasks to thread executor
…
}