使用 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% 的时间
相关推荐
tang7778918 小时前
Python爬虫代理,选短效IP还是长效IP?
爬虫·python·tcp/ip
写文章的大米18 小时前
这份数据验证方案,可以让你的 FastAPI 崩溃率直降90%
python
xingzhemengyou118 小时前
Python 有哪些定时器
前端·python
站大爷IP19 小时前
Python自动整理音乐文件:按艺术家和专辑分类歌曲
python
BBB努力学习程序设计19 小时前
Python 高效处理大数据:生成器(Generator)的工作机制与实战技巧
python
hashiqimiya19 小时前
java程序的并发
java·开发语言·python
2301_8119583819 小时前
浏览器下载huggingface网络连接超时,使用镜像源教程
python·tokenizer
red润19 小时前
Python环境变量自动配置:实现生产与开发环境无缝切换
后端·python
知识进脑的肖老千啊19 小时前
LangGraph简单讲解示例——State、Node、Edge
人工智能·python·ai·langchain
蹦蹦跳跳真可爱58920 小时前
Python----大模型(GPT-2模型训练,预测)
开发语言·人工智能·pytorch·python·gpt·深度学习·embedding