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

Python多进程并行运行函数问题求助及优化方案咨询

问题修复与替代方案

原代码的核心问题

  1. 语法错误:函数定义行末尾缺少冒号 :,这会直接导致代码无法正常解析运行。
  2. 无限制创建进程:如果你的list元素数量较多,循环中每次都新建进程并启动,会瞬间占用大量系统资源(CPU、内存),直接引发IDE甚至系统崩溃。

修复后的multiprocessing代码

使用multiprocessing.Pool限制并发进程数,避免资源耗尽:

from multiprocessing import Pool

def network_request_function(value):
    # 这里编写你的API请求逻辑
    print(f"处理请求: {value}")

if __name__ == "__main__":
    input_list = [1, 2, 3, 4, 5, 6]  # 替换为你的实际列表
    # 根据机器配置设置最大并发进程数,比如4或8
    with Pool(processes=4) as pool:
        pool.map(network_request_function, input_list)

注意:Windows系统下必须将进程启动代码放在if __name__ == "__main__":块内,避免重复创建子进程引发异常。

更适合IO密集型任务的替代方案

API请求属于IO密集型任务,线程池的开销远低于进程池,推荐使用concurrent.futures.ThreadPoolExecutor:

from concurrent.futures import ThreadPoolExecutor

def network_request_function(value):
    # 这里编写你的API请求逻辑
    print(f"处理请求: {value}")

if __name__ == "__main__":
    input_list = [1, 2, 3, 4, 5, 6]  # 替换为你的实际列表
    # 根据API的并发限制设置最大线程数,比如10
    with ThreadPoolExecutor(max_workers=10) as executor:
        executor.map(network_request_function, input_list)

如果目标API有请求频率限制,可在函数内添加适当延迟(如time.sleep(0.1)),避免触发限流或反爬机制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 09:20:30