进程池实现

必要性

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

原理

创建一定数量的进程来处理事件,事件处理完进程不退出而是继续处理其他事件,直到所有事件全都处理完毕统一销毁.增加进程的重复利用,降低资源消耗

进程池实现

  • 创建进程池对象,放入适当的进程
from multiprocessing import PoolPool(processes)
功能: 创建进程池对象
参数: 指定进程数量,默认根据系统自动判断
  • 将事件加入进程池队列执行
pool.apply_async(func,args,kwds)
功能: 使用进程池执行 func 事件
参数: func 事件函数args 援助 给func按位置传参kwds 字典 给func按照键值传参
返回值: 返回函数事件对象
  • 关闭进程池

    pool.close()
    功能: 关闭进程池
    
  • 回收进程池中进程

    功能: 回收进程池中进程
    
  • 图解

简单的代码例子

"""
进程池使用实例
"""from multiprocessing import Pool
from time import sleep, ctime# 进程池事件
def worker(msg):sleep(2)print(ctime(), '--', msg)if __name__ == '__main__':# 创建进程池pool = Pool()# 向进程池队列添加事件for i in range(10):msg = ' Tedu %d ' % ipool.apply_async(func=worker, args=(msg,))# 关闭进程池pool.close()pool.join()

控制台输出

Wed Dec 15 13:50:20 2021 --  Tedu 0
Wed Dec 15 13:50:20 2021 --  Tedu 1
Wed Dec 15 13:50:20 2021 --  Tedu 2
Wed Dec 15 13:50:20 2021 --  Tedu 3
Wed Dec 15 13:50:20 2021 --  Tedu 4
Wed Dec 15 13:50:20 2021 --  Tedu 5
Wed Dec 15 13:50:20 2021 --  Tedu 6
Wed Dec 15 13:50:20 2021 --  Tedu 7
Wed Dec 15 13:50:21 2021 --  Tedu 8
Wed Dec 15 13:50:21 2021 --  Tedu 9

python 进程池实现 pool相关推荐

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

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

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

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

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

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

  4. Python进程池之pool.map()函数传入多参数

    一 定义与解释 对于python代码,多线程其实是个假的,因为每次计算的时候,实质上只有一个线程计算.使用多线程时,是几个线程之间切换计算,就像轮班工作一下,适合处理I/O密集型的任务. 对于pyth ...

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

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

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

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

  8. python 进程池 等待数量_python 进程池multiprocessing.Pool

    44.Python 进程池multiprocessing.Pool 最后更新于:2020-03-21 11:53:37 python进程池Pool 和前面讲解的python线程池 类似,虽然使用多进程 ...

  9. python进程池调用实例方法_Python进程池Pool应用实例分析

    本文实例讲述了Python进程池Pool应用.分享给大家供大家参考,具体如下: 当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态成生多个进程,但如果是上百 ...

最新文章

  1. 电动车逆变器的基础知识
  2. php zend框架入门,Zend Framework 入门——快速上手
  3. linux cp命令使用
  4. vs编译应用程序不依赖运行vs环境
  5. SAP UI5 应用开发教程之二十 - SAP UI5 的表达式绑定用法讲解
  6. 在JDK 9中将InputStream传输到OutputStream
  7. LeetCode-105:从前序与中序遍历序列构造二叉树
  8. 谈谈头条创作者最近几个月的一些改变吧
  9. c语言程序和指令的关系为,C语言程序设计课件第1章计算机组成与程序设计语言汇总.ppt...
  10. HDU 5265 pog loves szh II (二分查找)
  11. WebEx Recorder
  12. 直方图均衡化算法、直方图匹配算法 C++ 代码
  13. C基础(三)函数的使用
  14. 第一性原理计算软件攻略-利用VESTA绘制差分电荷密度图解
  15. 精简高效的CSS命名准则和方法
  16. 设计低反射率触摸屏显示器以实现阳光下的可读性
  17. IP签名档PHP源码,简单几步,教你制作自己的显IP签名档
  18. autojs ui界面漂亮模板2
  19. C#减少图片文件大小和尺寸(转)
  20. QT 实现WINDOWS下网络设置功能(IP、子网掩码、网关、DNS)

热门文章

  1. 【JS】JavaScript快速介绍
  2. 如何系统学习ElasticSearch、Kibana、Logstash:死磕 Elasticsearch 方法论(初学者必看)
  3. RPG黑暗之光学习笔记 摄像头设置
  4. 研报精选230314
  5. ---已搬运--:[0CTF 2016]piapiapia -----代码审计+字符串逃逸+数组绕过长度限制+以及一下小知识点 preg_match()用数组,而且注意if是正确判断,还是错误判断
  6. 李开复:十年后中国AI市场将占据半壁江山,我已退掉3点钟区块链群
  7. c语言 string indexof,c语言indexof的用法有哪些
  8. 翻译的概念和翻译的用途
  9. 单字节字符串、宽字符串和多字节字符串
  10. 多串口卡在装车计量系统中的应用 (转)