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

Python Multiprocessing在for循环中启动进程后主循环阻塞如何解决

Python多进程并行不生效问题解决方案

核心错误原因

你创建子进程的代码存在参数传值错误,直接在主进程中提前执行了目标函数,没有将函数交给子进程运行:

  • Process构造方法的target参数要求传入函数对象本身,你写的target=combatAnalyis()加了括号,会立即在主进程中执行combatAnalyis函数,等待函数执行完成后才会继续往下走,自然没有并行效果。

修复方法

将创建Process的代码修改为如下形式即可:

# 仅需去掉target参数中函数名后的括号
p = Process(target=combatAnalyis)
# 如果combatAnalyis需要传参,通过args参数传入元组即可,示例:
# p = Process(target=combatAnalyis, args=(combatlog, ))

额外注意事项

  • 如果你需要在主进程退出前等待所有子进程执行完成,可以在主循环结束后收集所有子进程对象,逐个调用join()方法。
  • 多进程内存空间相互隔离,子进程无法直接读取主进程中定义的combatlog、othercombats等变量,如果需要传递数据要使用队列、管道等进程间通信工具。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:36:02