You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python多进程未并行执行?代码耗时不符预期求助

问题解决方法

你的代码存在两个关键问题,导致进程串行执行:

  1. 创建multiprocessing.Process时,错误地直接调用了sleeper(),这会让函数立刻在主进程中执行,而非交给子进程处理。
  2. 启动第一个进程后立刻调用join(),会阻塞主进程直到该进程结束,才会启动第二个进程,自然变成串行执行。

修正后的代码如下:

import multiprocessing
import time

inTime = time.time()
def sleeper():
    print("Im sleeper")
    time.sleep(1)

if __name__ == "__main__":
    # 正确传递函数对象,不要加括号调用
    p1 = multiprocessing.Process(target=sleeper)
    p2 = multiprocessing.Process(target=sleeper)
    
    # 先启动所有进程
    p1.start()
    p2.start()
    
    # 再等待所有进程结束
    p1.join()
    p2.join()

    nTime = time.time()
    print(f"done in {round(nTime-inTime,2)} s")

修改后两个子进程会并行执行,总耗时会接近1秒。

内容的提问来源于stack exchange,提问作者Nikunj Vashishtha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 21:25:23