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

Python子进程无法实现并发运行的问题排查

错误原因分析
  • 误用run()方法而非start():如果你的测试代码里调用的是process.run(),这会直接在主进程中同步执行子进程的任务函数,完全没有创建新的子进程,自然要等任务跑完才会执行后续标记为XX的代码。正确启动子进程的方式是调用process.start(),它会创建独立的新进程并异步执行任务。

  • 过早调用join()方法:如果在启动子进程后立刻调用了process.join(),这个方法会阻塞主进程,直到子进程完全执行完毕才会继续往下执行代码。如果XX代码写在join()之后,就会被延迟到子进程结束才运行。正确的做法是把XX代码放在start()之后、join()之前(如果需要等待子进程结束,join()应该放在XX代码之后)。

修正后的示例代码

import multiprocessing
import time

def child_task():
    print("子进程开始执行")
    time.sleep(3)
    print("子进程执行完毕")

if __name__ == "__main__":
    p = multiprocessing.Process(target=child_task)
    p.start()  # 正确启动异步子进程
    print("XX:主进程要立即执行的代码")  # 这行代码会在子进程启动后立刻运行
    p.join()  # 按需保留:等待子进程结束,不影响XX代码的执行时机

预期运行日志

XX:主进程要立即执行的代码
子进程开始执行
子进程执行完毕

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 08:42:02