Я выполняю несколько подпроцессов из python параллельно. Я хочу подождать, пока все подпроцессы не закончатся. Я делаю не элегантное решение:
runcodes = ["script1.C", "script2.C"]
ps = []
for script in runcodes:
args = ["root", "-l", "-q", script]
p = subprocess.Popen(args)
ps.append(p)
while True:
ps_status = [p.poll() for p in ps]
if all([x is not None for x in ps_status]):
break
существует класс, который может обрабатывать несколько подпроцессов? Проблема в том, что метод wait
блокирует мою программу.
update. Я хочу показать прогресс во время вычисления: что-то вроде "4/7 подпроцесса завершено..."
Если вам интересно root
скомпилировать С++ script и выполнить его.