当前位置: 首页 > news >正文

进程池

进程池

进程池下载图片(cpu+io混合型任务)

结果

总耗时: 18.28766179084778

示例代码

# -*- coding: utf-8 -*-
# 进程池 pool
import multiprocessing
import time
from io import BytesIOimport requests
from PIL import Imagedef download_and_save(i):print(f"开始下载img_{i}.jpg")base_url = f"https://picsum.photos/seed/{i}/400/300"try:r = requests.get(base_url, timeout=5)img = Image.open(BytesIO(r.content))img = img.resize(size=(300, 300))img.save(f"images/img_{i}.jpg")return f"✅img_{i}.jpg下载成功"except Exception as e:print(e)return f"❌img_{i}.jpg出错:{e}"def main():start_time = time.time()with multiprocessing.Pool(processes=10) as pool:result = pool.map(download_and_save, range(100))for res in result:print(res)print(f"\n总耗时:", time.time() - start_time)if __name__ == '__main__':main()

Pool.map 总结

Pool.map() 是什么

  • Pool.map(func,iterable) 普通的map,但在多进程并行执行
  • 自动分发任务,自动回收结果,返回一个结果列表
  • 默认会把参数列表,iterable拆分成各个子任务的参数
  • 每个子进程处理一项,高效又稳定

Pool 常用模式对比

用法 说明
pool.map(func, iterable) 简单任务一把扔
pool.apply(func, args) 同步执行单个任务
pool.apply_async(func, args) 异步执行一个任务(可加回调)
pool.map_async(func, iterable) 异步批处理(不阻塞)

建议

  • CPU密集型任务/大批量任务
  • 自动创建进程、自动服用、清理
  • 推荐map/map_async。

参考

https://zhuanlan.zhihu.com/p/1923372474415949643

http://www.hskmm.com/?act=detail&tid=13459

相关文章:

  • AutoCAD 2025 CAD 安装包中文永久免费免激活破解版下载及详细安装教程
  • 报表神器Stimulsoft再升级!Stimulsoft Reports、Dashboards 和 PDF Forms 2025.4 即将发布!
  • 题解:AT_agc027_e [AGC027E] ABBreviate
  • 【PostgreSQL 17】11 窗口函数
  • 商家列表管理与公众号二维码绑定​,方便对用户进行消息通知提醒
  • linux权限细化管理的三种方法:polkit sudoer doas做权限管理
  • mysql常用
  • 国产化Excel开发组件Spire.XLS教程:Python 写入 Excel 文件,数据写入自动化实用指南
  • Ansible的安装和使用
  • 数显LED驱动芯片恒流数码管驱动IC内置显示RAM为816位 VK16D33
  • 详细介绍:【TEC045-KIT】基于复旦微 FMQL45T900 的全国产化 ARM 开发套件
  • 【IEEE出版】2025年智慧物联与电子信息工程国际学术会议(IoTEIE 2025)
  • 9.22 机房练习
  • eslint
  • 视频调色神器!CyberLink ColorDirector:从入门到专业的视频色彩魔法工具
  • Leveraging Context-Aware Prompting for Commit Message Generation 论文笔记
  • P4951 [USACO01OPEN] Earthquake 题解
  • 用ida插件快速审计函数调用
  • 【ACM独立出版|往届已EI、Scopus检索|合作SSCI】第二届数字经济与计算机科学国际学术会议(DECS 2025)
  • schematool -initSchema -dbType mysql
  • PostgreSQL 全表 count 优化实践:从 SeqScan 痛点分析到 heapam 改进与性能突破
  • 第二章习题
  • Lightroom Classic 2025:精细调控,呈现完美画质,专业级数字照片管理与后期处理全解析
  • langfuse从v2.70.1升级到V3.110(异机升级+数据迁移)
  • 20250518_信安一把梭_医院抓取流量
  • tsx 图论选讲
  • OTP绕过漏洞:当后端过度信任前端时的安全灾难
  • 2MHz 8-bit 微控制器 with 64 Pins,M38049FFLKP ADR5040ARTZ TMS320F28062PZT K4AAG165WA-BCTD存储器
  • 实用指南:【Kubernetes】(六)Service
  • 校u圈校园外卖众包任务课表交友CPS社区:一站式校园生态服务系统