运行Python子进程

2024-05-17 15:49:52 发布

您现在位置:Python中文网/ 问答频道 /正文

所有人

我读过一些关于如何在python中运行子进程的线程,但似乎没有一个对我有帮助。可能是因为我不知道如何正确使用它们。我有几个方法希望同时运行,而不是按顺序运行,我认为subprocess模块会为我完成这项工作。在

def services():
     services = [method1(),
            method2(),
            method3(),  
            mrthod4(),
            method5()]
     return services

def runAll():
    import subprocess
    for i in services():
        proc = subprocess.call(i,shell=True)

这种方法的问题是method1()开始,method2()直到1结束才开始。我尝试了几种方法,包括使用子流程.Popen[]在我的服务方法中没有运气。有谁能帮我一把,教我如何让方法1-5同时运行?在

谢谢, 亚当


Tags: 模块方法return进程顺序defservice线程
3条回答

根据Python文档,subprocess.call()等待命令完成。您应该直接使用subprocess.Popen对象,这将为您提供所需的灵活性。在

在python3.2.x中,concurrent futures模块使这类事情变得非常简单。在

相关问题 更多 >