使用 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% 的时间
相关推荐
有风南来几秒前
算术图片验证码(四则运算)+selenium
自动化测试·python·selenium·算术图片验证码·四则运算验证码·加减乘除图片验证码
wangjinjin180几秒前
Python Excel 文件处理:openpyxl 与 pandas 库完全指南
开发语言·python
Yxh181377845541 小时前
抖去推--短视频矩阵系统源码开发
人工智能·python·矩阵
Humbunklung1 小时前
PySide6 GUI 学习笔记——常用类及控件使用方法(多行文本控件QTextEdit)
笔记·python·学习·pyqt
火车叼位2 小时前
使用 uv 工具在 Windows 系统快速下载安装与切换 Python
python
心扬2 小时前
python网络编程
开发语言·网络·python·tcp/ip
忧陌6062 小时前
DAY 44 预训练模型
python
点云SLAM3 小时前
PyTorch 中contiguous函数使用详解和代码演示
人工智能·pytorch·python·3d深度学习·contiguous函数·张量内存布局优化·张量操作
尘浮7283 小时前
60天python训练计划----day45
开发语言·python
哆啦A梦的口袋呀3 小时前
基于Python学习《Head First设计模式》第六章 命令模式
python·学习·设计模式