使用 multiprocessing 多进程处理批量数据

示例代码

python 复制代码
import multiprocessing

def process_data(data):
    # 这里是处理单个数据的过程
    return data * 2

# 待处理的数据
data = [1, 2, 3, 4, 5]

def normal_func():
    # 普通处理方式
    result = []
    for obj in data:
        result.append(process_data(obj)

    return result

def parallel_func():
    # 多进程处理方式
    pool = multiprocessing.Pool(multiprocessing.cpu_count())
    result = pool.map(process_data, data)
    pool.close()
    return result

if __name__ == '__main__':
    result = normal_func()
    result = parallel_func()
    

multiprocessing.Pool 创建进程池, 传入的参数是要要使用的 CPU 内核数量, 直接用 cpu_count() 可以拿到当前硬件配置所有的 CPU 内核数.

pool.map 可以直接将处理后的结果拼接成一个 list 对象

应用在实际数据处理代码的效果对比:

  • 普通处理方式, 用时 221 秒
  • 多进程处理方式, 用时 39 秒, 节省了 82% 的时间
相关推荐
shehuiyuelaiyuehao10 分钟前
多线程入门
java·python·算法
Oo92040 分钟前
Prompt工程核心与Python 字典
python·ai编程
feeday1 小时前
gpt4o 图像反推提示词
开发语言·人工智能·python
沈浩(种子思维作者)1 小时前
没有错误,正确将一文不值
人工智能·python·算法·量子计算
smith成长之旅1 小时前
06 | Mem0 框架分析:为什么要从记忆中提取实体?——Entity Store 的设计动机与工程实现
人工智能·python
smith成长之旅1 小时前
07 | Mem0 框架分析:三路信号融合——语义 + BM25 + Entity Boost 的混合检索
python·算法
荣码2 小时前
【Python知识详解】变量与数据类型:深入理解 Python 的数据世界
python
春日见2 小时前
五分钟入门 强化学习---Q-Learning算法与实现
人工智能·python·深度学习·算法·机器学习·计算机视觉
weixin_468466853 小时前
Prometheus监控服务部署与实战指南
服务器·后端·python·docker·自动化·prometheus
花酒锄作田3 小时前
[Python]标准库argparse解析命令行参数使用介绍
python