Я пишу довольно сложное приложение Java-сервера, которое имеет значительную часть обработки фона в дополнение к обычной обработке запроса-ответа. Некоторые из фоновой обработки выполняются cron-подобным образом с использованием рамки Quartz. Другие задачи более востребованы - если новый клиент подключается, он создает дополнительное задание для его обновления через некоторое время. Задачи cron также могут варьироваться - некоторые выполняют мониторинг внешних приложений, некоторые рассчитывают статистику и т.д.
Я использую несколько пулов потоков для запуска всех этих заданий с идеей о том, что подобные задания будут совместно использовать пул потоков, но разные задания не будут делиться ими. Например, задания мониторинга никогда не будут выполняться в пуле статистики, а задания статистики никогда не будут выполняться в пуле мониторинга.
С другой стороны, я знаю, что некоторые люди предпочли бы просто иметь единственный пул потоков и запускать все на нем без какого-либо разделения.
Интересно, что считается наилучшей практикой в таком сценарии.
Каковы преимущества минус разделение пулов потоков?
Это даже имеет значение?