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

Python多进程代码在Windows无法执行,Linux下正常运行求助

Windows下Python多进程代码无法运行的解决方法

Windows系统下Python的multiprocessing模块实现机制和Linux不同——Linux基于fork系统调用,而Windows会重新启动Python解释器并导入你的脚本文件。如果没有明确的主入口判断,脚本中的进程创建代码会被重复执行,导致程序异常甚至崩溃。

你的代码缺少主入口判断,修改如下:

from multiprocessing import Process
import os
import time

def square(n): # 用于演示的测试函数
    for i in range(n):
        print(i)
        i * i
        time.sleep(0.1)

if __name__ == '__main__':
    # 存储创建的进程
    processes = []
    # 获取CPU核心数
    cores = os.cpu_count()

    # 创建进程
    for i in range(cores):
        p = Process(target=square, args=(100,)) 
        processes.append(p)

    # 启动所有进程
    for proc in processes:
        proc.start()

    # 等待所有进程完成
    for proc in processes:
        proc.join()

    print("All processes are done")

修改说明

  • 把进程创建、启动、等待的逻辑全部放到if __name__ == '__main__':代码块中
  • 这个判断会确保只有当脚本作为主程序运行时才执行多进程相关代码,避免Windows下重复导入脚本时无限创建进程的问题

内容的提问来源于stack exchange,提问作者Satish Kumar Singh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 06:09:50