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

Python multiprocessing测试代码串行运行无并行效果如何排查?

问题原因

该问题属于代码编写错误,和PyCharm环境限制无关,核心错误点如下:

  • multiprocessing.Process的target参数需要接收函数对象本身,你代码中写的target=proc1()会直接在主进程中同步执行proc1函数,等函数完全运行结束后才会将返回值传给target参数,同理创建p2进程时也会先同步执行完proc2函数,最后启动的两个进程实际没有绑定正确的执行逻辑,你看到的串行输出是主进程同步调用两个函数的结果,多进程逻辑完全没有生效。
  • 额外注意:你的主文件命名为multiprocessing.py,和Python标准库的multiprocessing模块重名,后续可能会触发导入模块异常,建议修改为其他不冲突的名称,比如mp_demo.py。
修复方案

修改主文件中进程实例化的代码,去掉target参数后函数的括号,传入函数对象本身即可,修改后的代码示例:

import multiprocessing
import os


def proc1():
    os.system('python proc1.py')

def proc2():
    os.system('python proc2.py')

if __name__ == "__main__":
    p1 = multiprocessing.Process(target=proc1)
    p2 = multiprocessing.Process(target=proc2)
    p1.start()
    p2.start()
    # 可选添加join方法,等待子进程全部运行结束后再退出主进程
    p1.join()
    p2.join()

修改完成后运行即可看到两个进程的打印内容交错输出,符合并行运行的预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 17:57:05