Как организовать многопоточность для запуска subprocess?

Есть необходимость запускать subprocess в потоках с контролируемым количеством потоков, с возможность добовлять задания на лету.
Пока реализовано так, запускаю количество process из модуля multiprocessing равное количеству процессов, кидаю в очередь задачи которые необходимо выполнять, как задачи кончились потоки умерли, запускаю новые задачи смотрю предыдущие потоки is_alive(), если мертвые убиваю terminate() и запускаю потоки заново, если новые задачи добавились предыдущие еще не отработали то они просто ставятся в очередь и выполняются старыми потоками, так как они еще не умерли.
map не устраивает тем, что нет возможности добавить новые задачи, только создав новый pool.
Есть ли решение более рациональное ? Для запуска нескольки subprocess с контролируемым количеством потоков и возможность пополнения задачами которые необходимо запустить. Данные из subprocess не требуются, просто запустить в асинхроне
  • Вопрос задан
  • 111 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы