Нет, это кажется разумным.Я делаю что-то подобное, т.е. мне нужно выполнять задачи последовательно в зависимости от некоторого идентификатора, например, все задачи для компонента с id = "1" должны выполняться последовательно друг другу и параллельно всем другим задачам, которые предназначены длякомпоненты с разными идентификаторами.поэтому в основном мне нужна отдельная очередь задач для каждого отдельного компонента, задачи извлекаются одна за другой из каждой конкретной очереди.Для этого я использую
Executors.newSingleThreadExecutor(new JobThreadFactory(componentId));
для каждого компонента.Кроме того, мне нужен ExecutorService для задач другого типа, которые не привязаны к componentIds, для этого я создаю дополнительный экземпляр ExecutorService
Executors.newFixedThreadPool(DEFAULT_THREAD_POOL_SIZE, new JobThreadFactory());
Это отлично работает, по крайней мере, для моего случая.Единственная проблема, о которой я могу подумать, если есть необходимость упорядоченного выполнения задач, т.е. задача 2 НУЖНА быть выполнена после задачи 1 и так далее ... Но я сомневаюсь в этом в данном случае ...