Описание тега executorservice
ExecutorService - это объект Java, содержащий управляемый пул потоков и способный планировать отправленные задачи для этих потоков. Стратегии планирования различаются в нескольких доступных реализациях.
Количество потоков в сервисе может быть фиксированным или увеличиваться по требованию или увеличиваться до достижения некоторой границы. Задачи, которые нельзя запустить немедленно, могут быть поставлены в очередь или поток отправки может быть приостановлен до тех пор, пока задача не будет принята.
Задача для отправки должна реализовывать либо Runnable, либо Callable интерфейс (Callable допускает некоторые расширенные функции).
Когда он больше не нужен, ExecutorService должен быть явно выключен, как крошечная ОС.