лично я пытаюсь реорганизовать класс в 2 меньших класса, чтобы следовать принципу единой ответственности - поэтому есть класс для выполнения действий
ThreadPoolDispatcher [согласно приведенному выше предложению, с которым я согласен]
и затем ThreadPoolQueuer
, который будет отвечать за организацию очередей
просто личные предпочтения, хотя