start windows executable in multi-process and wait its ending

the executable

import time
import random
import sys

time.sleep(random.random())

print(sys.argv[1])

the calling control

import subprocess

ll = []
for ii in range(8):
    ll.append(subprocess.Popen(
        f"python ab.py mk{ii}"  # may be some other executable and agruments
    ))
    print(f"{ii}th is started.")
print("all start")

for ii, it in enumerate(ll):
    it.wait()
    print(f"{ii}th is done.")
print("all done.")

output

> python aa.py
0th is started.
1th is started.
2th is started.
3th is started.
4th is started.
5th is started.
6th is started.
7th is started.
all start
mk4
mk2
mk6
mk0
0th is done.
mk7
mk5
mk3
mk1
1th is done.
2th is done.
3th is done.
4th is done.
5th is done.
6th is done.
7th is done.
all done.

posted on 2024-04-28 21:53  yusisc  阅读(1)  评论(0编辑  收藏  举报

导航