ngu*_*b05 3 python multithreading subprocess python-2.7
我希望并行运行两个可执行文件 a.exe 和 b.exe,依次调用。
当我尝试时,
os.system('a.exe')
#some code
os.system('b.exe')
Run Code Online (Sandbox Code Playgroud)
b.exe 在我杀死 a.exe 后才开始启动?为什么会发生这种情况?我怎样才能同时运行两者?(需要多线程吗?) 注:我是Windows平台
如果我们忽略异常,那么同时运行多个程序就很简单:
#!/usr/bin/env python
import subprocess
# start all programs
processes = [subprocess.Popen(program) for program in ['a', 'b']]
# wait
for process in processes:
process.wait()
Run Code Online (Sandbox Code Playgroud)
如果您想在任何程序无法启动时停止先前启动的进程:
#!/usr/bin/env python3
from contextlib import ExitStack
from subprocess import Popen
def kill(process):
if process.poll() is None: # still running
process.kill()
with ExitStack() as stack: # to clean up properly in case of exceptions
processes = []
for program in ['a', 'b']:
processes.append(stack.enter_context(Popen(program))) # start program
stack.callback(kill, processes[-1])
for process in processes:
process.wait()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19302 次 |
| 最近记录: |