Python进程池之pool.map()函数传入多参数
一 定义与解释
对于python代码,多线程其实是个假的,因为每次计算的时候,实质上只有一个线程计算。使用多线程时,是几个线程之间切换计算,就像轮班工作一下,适合处理I/O密集型的任务。
对于python代码,多进程才是真正意义上的多个进程在同一时间同时计算,就像几个人同时工作,适合处理计算(CPU)密集型的任务
进程池就是我们将所要运行的东西,放到池子里,Python会自行解决多进程的问题
二 代码实现
1 调用函数传入单个参数
import multiprocessing as mpdef job(x):return x*xdef multicore():pool = mp.Pool() # 无参数时,使用所有cpu核# pool = mp.Pool(processes=3) # 有参数时,使用CPU核数量为3res = pool.map(job, range(10))print(res)if __name__ == '__main__':multicore()运行结果:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
2 调用函数传入一对参数
import multiprocessing as mp
import itertoolsdef job(r, item):(x, y) = itemreturn x * y def multicore(z):x_y = list(itertools.product(range(10), range(10)))pool = mp.Pool() # 无参数时,使用所有cpu核# pool = mp.Pool(processes=3) # 有参数时,使用CPU核数量为3res = pool.map(func, x_y)return resif __name__ == '__main__':res = multicore()print(res)
3 调用函数传入多个参数
import multiprocessing as mp
import itertools
from functools import partialdef job(z, r, item):(x, y) = itemreturn x * y + z + rdef multicore(z):x_y = list(itertools.product(range(10), range(10)))r = 2func = partial(job, z, r)pool = mp.Pool() # 无参数时,使用所有cpu核# pool = mp.Pool(processes=3) # 有参数时,使用CPU核数量为3res = pool.map(func, x_y)return resif __name__ == '__main__':res = multicore(1)print(res)
原文链接:https://blog.csdn.net/zsc201825/article/details/96484910
Python进程池之pool.map()函数传入多参数相关推荐
- Python 进程池 multiprocessing.Pool - Python零基础入门教程
目录 一.Python 进程池 multiprocessing.Pool 介绍 二.Python 进程池 multiprocessing.Pool 使用 三.猜你喜欢 零基础 Python 学习路线推 ...
- 【Python】Python进程池multiprocessing.Pool八个函数对比:apply、apply_async、map、map_async、imap、starmap...
1.apply 和 apply_async 一次执行一个任务,但 apply_async 可以异步执行,因而也可以实现并发. 2.map 和 map_async 与 apply 和 apply_asy ...
- Python进程池multiprocessing.Pool的用法
一.multiprocessing模块 multiprocessing模块提供了一个Process类来代表一个进程对象,multiprocessing模块像线程一样管理进程,这个是multiproce ...
- Python进程池apply_async的callback函数不执行的解决方案
最近在用multiprocessing.Pool的apply_async方法做多进程,在写示例的时候发现callback居然没有执行,遂记录原因如下. 目录 apply_async的func传入lam ...
- python进程池multiprocessing.Pool和线程池multiprocessing.dummy.Pool实例
本文简单介绍python进程模块multiprocessing提供的进程池和线程池功能. 进程池: 进程池的使用有四种方式:apply_async.apply.map_async.map.其中appl ...
- python 进程池实现 pool
进程池实现 必要性 进程的创建和销毁过程消耗的资源比较多 当任务量众多,每个任务在很短时间内完成时,需要平方的创建和销毁进程,此时对计算机压力比较大 进程池技术很好的解决了以上问题 原理 创建一定数量 ...
- python进程池multiprocessing.Pool运行错误:The freeze_support() line can be omitted if the program is not g
测试代码如下: 原文:https://blog.csdn.net/xiemanr/article/details/71700531 # -*- coding: utf-8 -*- import mul ...
- python进程池win出错,python进程池multiprocessing.Pool运行错误:
错误: Traceback (most recent call last): File "", line 1, in File "C:\Program Files\Ana ...
- Python进程池Pool、进程池通信
前言 这几年一直在it行业里摸爬滚打,一路走来,不少总结了一些python行业里的高频面试,看到大部分初入行的新鲜血液,还在为各样的面试题答案或收录有各种困难问题 于是乎,我自己开发了一款面试宝典,希 ...
最新文章
- 随机位置显示图片不重叠前端实现详细讲解附效果图,代码可直接使用
- vue中使用promise
- esp32 micropython web服务器_ESP32 Arduino教程:Websocket server(服务器)
- 模板:割点、桥与双连通
- hdu 5631 Rikka with Graph(图)
- yolov3从头实现(二)-- 数据增强
- 笔记︱信用风险模型(申请评分、行为评分)与数据准备(违约期限、WOE转化)
- NetBeans 时事通讯(刊号 # 51 - Apr 07, 2009)
- HDU 1711 Number Sequence (KMP)
- 测绘工程野外测量实践实习
- C#如何实现一个简单的流程图设计器
- 期刊投稿时,word文档分栏问题
- 深度学习基础6(微分,偏导,梯度,链式法则)
- fanc 机器人_24个FANUC机器人的视觉功能详细介绍
- DWG文件如何转换为PDF黑白文件
- 计算机vb中的缺省是什么意思,请问缺省.既然缺省的意思为默认可是为什么不 – 手机爱问...
- 彻底关闭win10更新自动更新 卸载win10自带杀毒软件 新增联想软件 lenovo quick fix
- BibTeX的使用方法
- 2021秋季开学必备数码产品!学生党的超实用好物清单
- 【SQL Server系列】_01数据库系统概述
热门文章
- Android系统SystemUI启动过程
- flutter系列之:如丝般顺滑的SliverAppBar
- 计算机应用研究是什么期刊,发表一篇计算机应用研究期刊论文要多久?
- 为仿真器添加eCos多线程调试支持,GDBServer Extender 0.0.1 使用说明
- SQL数据库可疑恢复 挂起恢复 置疑恢复 SQL数据库无法附加修复 附加报错 9003
- 小程序之任务发布与接单平台
- matlab测试网络,matlab测试网络
- 360doc 个人图书馆地址
- maven关闭检验_Maven常用命令:
- mybatisSql编写小结