使用 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% 的时间
相关推荐
想会飞的蒲公英几秒前
PyTorch reshape、view、transpose、广播到底怎么选?
人工智能·pytorch·python
卷无止境2 分钟前
Python装饰器:一层糖衣包裹的函数魔法
后端·python
xlrqx4 分钟前
长治家电清洗培训基地如何挑选及行业基本培训标准科普
大数据·python
无敌秋8 分钟前
python/c++/java上云
java·c++·python
卷无止境11 分钟前
Python的Lambda表达式——不起名字的函数也能干大事
后端·python
映翰通朱工14 分钟前
从0到1:EC942边缘计算机用Python实现Modbus TCP采集+MQTT上云全记录(附踩坑实录)
网络·python·网络协议·tcp/ip·二次开发·映翰通
donoot17 分钟前
双层 PDF 体积暴涨(18MB 原图 → 200MB PDF)完整原因剖析 + 针对性优化方案
python·pymupdf·paddleocr·双层pdf
RSABLOCKCHAIN9 小时前
AI Agents in LangGraph-2
人工智能·python
WA内核拾荒者9 小时前
WhatsApp 账号异常检测的自动化告警系统设计
数据库·python·自动化
码流怪侠10 小时前
【GitHub】Bend:让 GPU 并行编程像写 Python 一样简单
python·github