使用 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% 的时间
相关推荐
计算机编程-吉哥2 小时前
计算机毕业设计 基于Hadoop的智慧校园数据共享平台的设计与实现 Python 数据分析 可视化大屏 附源码 文档
大数据·hadoop·python·数据分析·毕业设计·毕业论文·计算机毕业设计选题
算是难了3 小时前
Python基础
开发语言·python
凡人的AI工具箱3 小时前
15分钟学 Python 第29天 : 数据库基础
开发语言·数据库·人工智能·后端·python
西农小陈4 小时前
python-金币/打分/小理学数列3
数据结构·python·算法
wxl7812274 小时前
如何让ollama本地模型使用code-interpreter(代码解释器)?
python·code·ollama·本地大模型·interperter·代码解释器
luthane4 小时前
python 实现random forest classifier随机森林分类器算法
python·算法·随机森林
计算机学姐5 小时前
基于大数据的高校新生数据可视化分析系统
大数据·vue.js·python·mysql·信息可视化·django·pip
_.Switch8 小时前
边缘计算与 Python Web 应用:从理论到实践
开发语言·前端·人工智能·python·架构·log4j·边缘计算
凯子坚持 c8 小时前
【机器学习】---元强化学习
人工智能·python·机器学习
Yasen.M8 小时前
manim中实现文字换行和设置字体格式
开发语言·python·机器学习·动画·pip·pyvista