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

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

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

Похожие вопросы
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект
22 нояб. 2024, в 22:26
3500 руб./за проект