一 定义与解释

对于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()函数传入多参数相关推荐

  1. Python 进程池 multiprocessing.Pool - Python零基础入门教程

    目录 一.Python 进程池 multiprocessing.Pool 介绍 二.Python 进程池 multiprocessing.Pool 使用 三.猜你喜欢 零基础 Python 学习路线推 ...

  2. 【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 ...

  3. Python进程池multiprocessing.Pool的用法

    一.multiprocessing模块 multiprocessing模块提供了一个Process类来代表一个进程对象,multiprocessing模块像线程一样管理进程,这个是multiproce ...

  4. Python进程池apply_async的callback函数不执行的解决方案

    最近在用multiprocessing.Pool的apply_async方法做多进程,在写示例的时候发现callback居然没有执行,遂记录原因如下. 目录 apply_async的func传入lam ...

  5. python进程池multiprocessing.Pool和线程池multiprocessing.dummy.Pool实例

    本文简单介绍python进程模块multiprocessing提供的进程池和线程池功能. 进程池: 进程池的使用有四种方式:apply_async.apply.map_async.map.其中appl ...

  6. python 进程池实现 pool

    进程池实现 必要性 进程的创建和销毁过程消耗的资源比较多 当任务量众多,每个任务在很短时间内完成时,需要平方的创建和销毁进程,此时对计算机压力比较大 进程池技术很好的解决了以上问题 原理 创建一定数量 ...

  7. 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 ...

  8. python进程池win出错,python进程池multiprocessing.Pool运行错误:

    错误: Traceback (most recent call last): File "", line 1, in File "C:\Program Files\Ana ...

  9. Python进程池Pool、进程池通信

    前言 这几年一直在it行业里摸爬滚打,一路走来,不少总结了一些python行业里的高频面试,看到大部分初入行的新鲜血液,还在为各样的面试题答案或收录有各种困难问题 于是乎,我自己开发了一款面试宝典,希 ...

最新文章

  1. 随机位置显示图片不重叠前端实现详细讲解附效果图,代码可直接使用
  2. vue中使用promise
  3. esp32 micropython web服务器_ESP32 Arduino教程:Websocket server(服务器)
  4. 模板:割点、桥与双连通
  5. hdu 5631 Rikka with Graph(图)
  6. yolov3从头实现(二)-- 数据增强
  7. 笔记︱信用风险模型(申请评分、行为评分)与数据准备(违约期限、WOE转化)
  8. NetBeans 时事通讯(刊号 # 51 - Apr 07, 2009)
  9. HDU 1711 Number Sequence (KMP)
  10. 测绘工程野外测量实践实习
  11. C#如何实现一个简单的流程图设计器
  12. 期刊投稿时,word文档分栏问题
  13. 深度学习基础6(微分,偏导,梯度,链式法则)
  14. fanc 机器人_24个FANUC机器人的视觉功能详细介绍
  15. DWG文件如何转换为PDF黑白文件
  16. 计算机vb中的缺省是什么意思,请问缺省.既然缺省的意思为默认可是为什么不 – 手机爱问...
  17. 彻底关闭win10更新自动更新 卸载win10自带杀毒软件 新增联想软件 lenovo quick fix
  18. BibTeX的使用方法
  19. 2021秋季开学必备数码产品!学生党的超实用好物清单
  20. 【SQL Server系列】_01数据库系统概述

热门文章

  1. Android系统SystemUI启动过程
  2. flutter系列之:如丝般顺滑的SliverAppBar
  3. 计算机应用研究是什么期刊,发表一篇计算机应用研究期刊论文要多久?
  4. 为仿真器添加eCos多线程调试支持,GDBServer Extender 0.0.1 使用说明
  5. SQL数据库可疑恢复 挂起恢复 置疑恢复 SQL数据库无法附加修复 附加报错 9003
  6. 小程序之任务发布与接单平台
  7. matlab测试网络,matlab测试网络
  8. 360doc 个人图书馆地址
  9. maven关闭检验_Maven常用命令:
  10. mybatisSql编写小结