Во-первых, я не смог определить, каким должен быть заголовок, поэтому, если он недостаточно конкретен, возникнет сам вопрос.
У нас есть приложение, которое использует службу переднего плана и остается в живых навсегда, и в этой службе есть частые задания доступа к базе данных, задания доступа к сети и некоторые другие, которые необходимо выполнять в фоновых потоках. Одна работа сама по себе отнимает небольшое количество времени, но сами работы выполняются часто. Очевидно, что они должны работать в рабочих потоках, поэтому я здесь, чтобы спросить, какому дизайну нам следует следовать.
— это структура, которая создает отдельный поток и использует очередь для выполнения задач, но всегда зацикливается и ждет сообщений, которые потребляют энергию, в то время как ThreadPoolExecutor создает несколько потоков для каждого задания и удаляет потоки, когда задания выполняются. , но из-за слишком большого количества потоков могут возникнуть утечки или даже нехватка памяти. Количество заданий может быть 5 или 20, в зависимости от того, как пользователь действует определенным образом. Между двумя заданиями может быть перерыв в 5 секунд или в день, в зависимости от пользователя. Но помните, что приложение остается активным навсегда и ждет выполнения этих заданий.
Итак, какой из них лучше использовать в данном конкретном случае? Исполнитель пула потоков или поток-обработчик? Любой совет приветствуется, спасибо.
Подробнее здесь:
https://stackoverflow.com/questions/591 ... olexecutor