См. doc :
Пул, на который больше нет ссылок в программе И в котором нет оставшихся потоков , будет автоматически отключен.
Однако по умолчанию потоки в пуле не завершаются автоматически, они ожидают новых задач.Таким образом, ресурсы не будут освобождены.
Если вы хотите, чтобы пулы, на которые нет ссылок, были возвращены, даже если пользователи забывают вызывать shutdown (), то вы должны организовать, чтобы неиспользуемые потоки в конечном счете умирали, установивсоответствующее время поддержания активности, используя нижнюю границу потоков с нулевым ядром и / или настройку allowCoreThreadTimeOut (логическое значение).
А в моем личном опыте я получил OutOfMemory
ошибка, потому что не звонил shutdown
или allowCoreThreadTimeOut
.