Среди всех моих задач у меня есть некоторые, которые должны обрабатываться последовательно (они никогда не могут запускаться одновременно, и их нужно обрабатывать в порядке).
Я достиг этого создания отдельного пула потоков с одним потоком для каждой группы задач, которые должны выполняться последовательно. Он работает, но у меня нет ресурсов для этого. Я не контролирую количество групп, поэтому я мог бы получить нелепое количество потоков, выполняемых одновременно.
Есть ли способ сделать это с помощью пула потоков? Есть ли пул потоков с несколькими очередями блокировки, где я мог бы обеспечить последовательное выполнение для каждой очереди?
EDIT:
Просто подчеркивая то, что я сказал в моем втором абзаце: я решил это с помощью одного потока потока пула для каждой группы задач, которые должны выполняться последовательно. Однако я не могу продолжать это решение. Есть слишком много групп, и я не могу иметь все эти потоки.
Я нашел этот связанный вопрос, но поскольку он не совсем недавно, я все еще создал свою. Все, что я делаю, это попытка избежать изобретательства колеса, но, похоже, у меня нет выбора.