В настоящее время у меня есть программа, которая использует subprocess.Popen
, чтобы открыть исполняемый файл и передать аргумент - эквивалентно запуску ./path/to/file args
в Linux.
Это работает очень хорошо, но мне нужно выполнить этот файл поверх1000 раз и в настоящее время это делается по одному на одном процессоре. Я хочу иметь возможность выполнять этот файл, например, в наборах по 8, так как у меня 8-ядерный ПК.
Я пробовал следующее:
bolsig = ("/home/rdoyle/TEST_PROC/BOLSIG/bolsigminus")
infile_list = glob.glob(str(cwd)+"/BOLSIG Run Files/run*")
cmds_list = [[bolsig, infile] for infile in infile_list]
procs_list = [Popen(cmd) for cmd in cmds_list]
for proc in procs_list:
proc.wait()
Но это пытаетсявыполнить все 1000 команд одновременно.
У кого-нибудь есть предложения?