Интерфейс ExecutorService отделяет отправку задачи на выполнение от непосредственно самого выполнения. По сравнению с использованием потоков и интерфейсом Runnable удобно то, что с помощью
Современный язык Java. Лямбда-выражения, потоки и функциональное программирование
·
Алан Майкрофт