在python中,只有多进程才可以充分利用CPU的资源,适合CPU计算型任务,其他的就不多说了。这里介绍一个 pool.map()方法,很实用!

pool.map()

先直接上代码:

import time
from multiprocessing.pool import Pooldef numsCheng(i):return i * 2if __name__ == '__main__':time1 = time.time()nums_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]pool = Pool(processes=5)result = pool.map(numsCheng, nums_list)pool.close()        # 关闭进程池,不再接受新的进程pool.join()         # 主进程阻塞等待子进程的退出print(result)time2 = time.time()print("计算用时:", time2-time1)

运行结果:

[2, 4, 6, 8, 10, 12, 14, 16, 18]
计算用时: 0.21639275550842285

解释说明:

1.看到Pool有一个processes参数,这个参数可以不设置,如果不设置函数会跟根据计算机的实际情况来决定要运行多少个进程,我们也可自己设置,但是要考虑自己计算机的性能。

2.map()函数。需要传递两个参数,第一个参数就是需要引用的函数,第二个参数是一个可迭代对象,它会把需要迭代的元素一个个的传入第一个参数我们的函数中。因为我们的map会自动将数据作为参数传进去

3.pool()开启了,不要忘记pool.close() 和 pool.join() 关闭进程池,以及让主进程阻塞等待子进程的退出。

Python 多进程pool.map()方法的使用相关推荐

  1. python3.x pool.map方法的实质

    我使用多进程的一般方式,都是multiprocessing模块中的Pool.map()方法.下面写一个简单的示例和解析.至于此种方法使用多进程的效率问题,还希望大佬予以指正. 示例: "&q ...

  2. Python 多进程异常处理的方法,你会吗

    最近项目用到了Python作为网站的前端,使用的框架是基于线程池的Cherrypy,但是前端依然有一些比较'重'的模块.由于python的多线程无法很好的利用多核的性质,所以觉得把这些比较'重'的功能 ...

  3. python多路分支_用于多个参数的python multiprocessing pool.map

    在python多处理库中,是否有pool.map的变体支持多个参数? text ="test" def harvester(text, case): X = case[0] tex ...

  4. python多进程的使用方法

    多进程的使用方法,如图所示: p = pool.Pool()process_num = 10 divide = 1/process_numfor i in range(process_num):p.a ...

  5. c++ map 获取key列表_一日一技:举例说明python中的map()方法

    map()函数 Python 的map()方法,作为输入提供的迭代器的所有元素应用函数. 例如,迭代器可以是列表,元组,集合,字典,字符串,并且它返回可迭代的映射对象. 另外,map()是python ...

  6. dmol3给定关键字不在字典中_一日一技:举例说明python中的map()方法

    map()函数 Python 的map()方法,作为输入提供的迭代器的所有元素应用函数. 例如,迭代器可以是列表,元组,集合,字典,字符串,并且它返回可迭代的映射对象. 另外,map()是python ...

  7. Python多进程及多参数的处理方法

    一.多进程pool.map()方法一 import time from multiprocessing.pool import Pooldef numsCheng(i):return i * 2if ...

  8. python中multiple函数_关于多处理:在Python中将多个参数传递给pool.map()函数

    本问题已经有最佳答案,请猛点这里访问. 我需要一些方法来使用pool.map()中接受多个参数的函数.根据我的理解,pool.map()的目标函数只能有一个iterable作为参数,但是有没有其他参数 ...

  9. python 多进程异常处理

    前言 最近项目用到了Python作为网站的前端,使用的框架是基于线程池的Cherrypy,但是前端依然有一些比较'重'的模块.由于python的多线程无法很好的利用多核的性质,所以觉得把这些比较'重' ...

最新文章

  1. linux项目课程设计,LINUX课程设计项目需求解析.doc
  2. ar 微信小程序_微信AR玩法支持实现后,微信小程序会有想象空间吗?
  3. 简述osi参考模型各层主要功能_计软考研双日练 | OSI参考模型各层提供什么服务?...
  4. Vue.js2.0核心思想
  5. java 多线程变量可见性_Java多线程:易变变量,事前关联和内存一致性
  6. RabbitMQ六种队列模式-工作队列模式
  7. 哪里可以学3D次世代角色建模?具体学什么东西?
  8. springboot 创建地址_使用 SpringBoot Admin监控Spring Boot 服务
  9. Velocity中避免null引起的数据问题
  10. android studio进度条的应用,Android Studio实现进度条效果
  11. java 定时器qz xm配置_java_Java的作业调度类库Quartz基本使用指南,一、常用接口: 1、Job接口: - phpStudy...
  12. reconnecting-websocket.min.js
  13. Gis软件下载大全(ArcGis9.3-ArcGis10.8、ArcGisPro1.2-ArcGisPro3.0、FME20132-FME2022、CAD2004-CAD2023)
  14. JSP的九大内置对象
  15. 如何在校外下载期刊全文--应对大家工作后的资料搜寻
  16. 讯飞2021年营收183亿:同比增41% 净利为15.56亿
  17. Arduino+WZ指令+Onenet
  18. 2021-09-07体脂秤模块用来做什么?开发八电极体脂秤方案
  19. 机器自动翻译古文拼音 - 十大宋词 - 青玉案 凌波不过横塘路 贺铸
  20. 【产品笔记】1.什么是精益产品探索

热门文章

  1. 组合模式coding
  2. ActiveMQ 消息持久化到Mysql数据库
  3. python实时获取子进程输出_Python 从subprocess运行的子进程中实时获取输出的例子...
  4. 我犯的错误--struts标签s:radio
  5. 缘起 Dubbo ,讲讲 Spring XML Schema 扩展机制
  6. 跟小静读CLR via C#(16)--泛型
  7. 在MonoTouch中正确而简单的使用 Sqlite 数据库
  8. 环美亚二十年装修师傅分享,甲醛的八种来源
  9. MongoDB-集群搭建
  10. 第一章 简单工厂模式