【问题标题】:Subprocess calls, are they done in parallel?子进程调用,它们是并行完成的吗?
【发布时间】:2014-03-27 20:41:37
【问题描述】:

我一直在谷歌搜索这个问题的答案,但似乎没有一个答案。谁能告诉我subprocess 模块是否并行调用? Python 文档建议它可用于生成新进程,但没有提及它们是否并行。如果它们可以并行完成,您能否给我一个示例或将我链接到一个示例?

【问题讨论】:

    标签: python parallel-processing


    【解决方案1】:

    这取决于你如何使用subprocess

    subprocess.call("some-program")
    

    将阻塞直到some-program 完成。

    p = subprocess.Popen("some-program")
    

    将在单独的进程中运行 some-program,与脚本的其余部分并行运行。

    请注意,第一个只是一个方便的包装器,相当于

    subprocess.Popen("some-program").wait()    
    

    output = subprocess.check_output("some-program")基本一样

    output, stderr = subprocess.Popen("some-program").communicate()
    

    【讨论】:

    • Arrr ok im using subprocess.check_output("some-command") 是否可以从 check_output 切换到 Popen
    • @iNoob,在这里我们看到了为什么特定问题是好的演示! :) 您可能应该更新您的问题以说明这一点
    • @wnnmaw 抱歉,我有一点时间,更新它是什么意思?很高兴这样做,但您能详细说明一下吗?
    • @iNoob,一切都好,今天是星期五。您可以通过按标签下方的“编辑”按钮来更新您的原始问题
    • @wnnmaw 大声笑我指的是你希望我也更新它。附言。星期四在这里^_^,我为什么要笑这是一件坏事:(
    猜你喜欢
    • 1970-01-01
    • 2015-08-21
    • 2012-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多