Суть в том, что исполнители абстрагируют низкоуровневые детали управления потоками.Это правда?
Да.
Они имеют дело с такими проблемами, как создание объектов потока, поддержание пула потоков, контроль количества запущенных потоков и изящный / меньшеэто изящное отключение.Делать эти вещи вручную нетривиально.
РЕДАКТИРОВАТЬ
При этом может быть или не быть снижение производительности ... по сравнению с пользовательской реализацией идеально настроен для точных потребностей вашего приложения .Но есть вероятность, что:
- ваша пользовательская реализация не будет идеально настроена, а
- производительность разница в любом случае не будет значительной.
Кроме того, классы поддержки Executor позволяют просто настраивать различные параметры (например, размеры пула потоков), если есть проблема, которую необходимо устранить.Я не понимаю, насколько значительно повлияет накладные расходы на сборку мусора при использовании исполнителей, так или иначе.
Как правило, вы должны сосредоточиться на написании своих приложений просто и надежно (например, с использованием высокойподдерживать классы параллелизма) и беспокоиться о производительности, только если:
- ваше приложение работает "слишком медленно", а
- инструменты профилирования сообщают вам, что у вас есть проблемав определенной области.