Я читал об этом совсем немного в последние пару часов, и я просто не вижу никаких оснований ( действительна причина) для вызова shutdown()на ExecutorService, если мы не будем иметь Humongous приложение , которое хранит, десятки и десятки различных услуг ИСПОЛНИТЕЛЬ, которые не используются для долго.
Единственное (из того, что я понял) завершение работы - это делать то, что делает обычный поток после завершения. Когда обычный поток завершит выполнение метода Runnable (или Callable), он будет передан в сборку мусора для сбора. С Executor Service потоки будут просто приостановлены, они не будут отмечены для сборки мусора. Для этого нужно отключение.
Хорошо, вернемся к моему вопросу. Есть ли причина вызывать выключение ExecutorServiceочень часто или даже сразу после отправки ему некоторых задач? Я хотел бы оставить случай, когда кто-то это делает, и сразу после этого звонит, awaitTermination()когда это подтверждается. Как только мы это сделаем, нам придется заново воссоздавать новое ExecutorService, чтобы сделать то же самое. Разве не идея ExecutorServiceповторного использования потоков? Так зачем уничтожать ExecutorServiceтак быстро?
Разве это не рациональный способ просто создать ExecutorService(или объединить, в зависимости от того, сколько вам нужно), затем во время работы приложения передать им задачи, как только они появятся, а затем при выходе из приложения или на некоторых других важных этапах выключить эти исполнители ?
Я хотел бы получить ответ от опытных программистов, которые пишут много асинхронного кода с помощью ExecutorServices.
Второй побочный вопрос, немного поменьше, касается платформы Android. ЕСЛИ некоторые из вас скажут, что отключать исполнителей каждый раз - не лучшая идея, и вы программируете на Android, не могли бы вы рассказать мне, как вы справляетесь с этими отключениями (чтобы быть конкретными - когда вы их выполняете), когда мы имеем дело с различными событиями жизненный цикл приложения.
Из-за комментария CommonsWare я сделал сообщение нейтральным. Мне действительно неинтересно спорить об этом до смерти, и, похоже, это ведет к этому. Мне интересно узнать о том, о чем я здесь просил, опытных разработчиков, только если они готовы поделиться своим опытом. Благодарю.