Python进程池基本概念

 更新时间:2022年03月31日 08:35:44   作者:苏州程序大白  
这篇文章主要介绍了Python进程池基本概念,当创建的子进程数量不多时,可以直接利用多处理进程中的进程动态形成需要的进程,下文关于Python线程池的概念做详细介绍,需要的小伙伴可以参考一下

前言:

创建进程池可以形象地理解为创建一个并行的流水线,只需创建一次流水线的消耗,处理接收到的任务的,不使用进程池。 ,浪费时间。

中方本来没有进程的,除了python的,使用线程池的语言,是进程的其他线程池(而进程是执行业务的其他任务)。python的原因(因为Cython的概念),线程编程不同的并行,把线程池的概念转移到了进程中,命名为进程池。

一、python进程池

创建的子进程数量不多时,可以直接利用多处理进程中的进程动态形成需要的进程。

如果是上百量甚至巨大上千,手动的去创建进程的工作目标,此时就可以为多进程模块提供池的方法。

1、初始化 Pool 时,可以指定一个进程数

2、当有新的请求提交到 Pool 中时

  • 如果池还没有满,那么就用创建一个新进程的执行该请求;
  • 如果池中的进程达到指定的任务,那么已经有多少时间,直到有进程结束,会用之前的请求进程来执行新的任务。

二、进程池如何使用?

申请()

函数原型:apply (func, args=()[, kwds={}]])

该函数传递不定参数,同 python 中的应用函数一致,主进程会被阻止函数执行结束(不建议使用,并且 3.x 以后不再出现使用)

apply_async

函数原型:apply_async(func[, args=()[, kwds={}[, callback=None]]])

与应用一致,但它是非进行不支持的使用支持结果返回后反对

地图()

函数原型:map(func, iterable[, chunksize=None])

池类中的映射表的行为必须基本一致,它会使用第二个进程与先前的结果返回:

但在实际使用中,参数是一个调用,在整个应用程序中都需要注意,程序会运行子进程。

map_async()

函数原型:map_async(func, iterable[, chunksize[, callback]])

与地图匹配一致,但它是非阻尼的。

close()

关闭进程池(pool),不再接受新的任务。

终端()

结束工作进程,不再处理未处理的任务。

加入()

主进程停止等待子进程的退出,加入方法要在关闭或终止使用之后。

三、代码实列

# 导入相关multiprocessing包
import multiprocessing

# 创建拥有CPU核心数量的进程的进程池
pool = multiprocessing.Pool(processes=multiprocessing.cpu_count())

for i in  range ( 100 ): ##制动等待当前任务的进程结束# pool.apply(func=pow, args=(i,2))
    
    

    # 不延迟当前任务的进程结束
    pool.apply_async(func= pow , args=(i, 2 ))

# # map函数到一个列表,延迟返回值
# results = pool.map(func=print, iterable=[i for i in range(10000)])

# # 不延迟等待返回值,未运行完就调用results会报错。
# results = poolmap_async(func=print, iterable=[i for i in range(10000)])

#close之后不会有新的进程加入到pool
 pool.close()

#加入函数等待所有子进程#调用加入之前,先结束调用close函数,否则会出错。
 pool.join()

# # 结束工作进程,不再处理未完成的任务。
# pool.terminate()

四、进程池中的进程和一般的进程有什么区别?

进程池中的Queue:

  • 如果要使用进程池创建进程,就需要使用multiprocessing.Manager()中的Queue(),而不是multiprocessing.Queue()
  • 使用的方法是一样的,都已经成功了,再用q.put()添加、q.get()等待获取。

到此这篇关于Python进程池基本概念的文章就介绍到这了,更多相关Python进程池内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python特效之文字成像方法详解

    Python特效之文字成像方法详解

    文字成像,即将原图片经过 python 处理后,生成完全由纯文字组成的图像。本文将具体为大家介绍如何通过Python实现这一效果,感兴趣的可以学习一下
    2022-01-01
  • Python找出微信上删除你好友的人脚本写法

    Python找出微信上删除你好友的人脚本写法

    在本篇文章中我们给大家分享了Python找出微信上删除你好友的人脚本写法以及相关实例代码,有需要的朋友们参考下。
    2018-11-11
  • python简单实现插入排序实例代码

    python简单实现插入排序实例代码

    在本篇文章里小编给大家整理了一篇关于python简单实现插入排序实例代码,有需要的朋友们可以学习参考下。
    2020-12-12
  • python虚拟环境venv、virtualenv配置方式

    python虚拟环境venv、virtualenv配置方式

    这篇文章主要介绍了python虚拟环境venv、virtualenv配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • 一文带你安装opencv与常用库(保姆级教程)

    一文带你安装opencv与常用库(保姆级教程)

    Python OpenCV是一种流行的计算机视觉库,使用它可以进行图像处理、视频处理等操作,下面这篇文章主要给大家介绍了关于安装opencv与常用库的相关资料,需要的朋友可以参考下
    2023-05-05
  • Python如何对接文心一言

    Python如何对接文心一言

    这篇文章主要为大家介绍了Python如何对接文心一言的操作实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • Numpy数据转换成image并保存的实现示例

    Numpy数据转换成image并保存的实现示例

    本文主要介绍了Numpy数据转换成image并保存的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-12-12
  • django框架model orM使用字典作为参数,保存数据的方法分析

    django框架model orM使用字典作为参数,保存数据的方法分析

    这篇文章主要介绍了django框架model orM使用字典作为参数,保存数据的方法,结合实例形式分析了字典参数结合django model实现保存数据相关操作技巧,需要的朋友可以参考下
    2019-06-06
  • Python自动扫码支付的实现示例

    Python自动扫码支付的实现示例

    本文主要介绍了Python自动扫码支付的实现示例,包括二维码识别、自动填写支付信息、自动点击支付等过程,具有一定的参考价值,感兴趣的可以了解一下
    2023-11-11
  • Python控制台输出时刷新当前行内容而不是输出新行的实现

    Python控制台输出时刷新当前行内容而不是输出新行的实现

    今天小编就为大家分享一篇Python控制台输出时刷新当前行内容而不是输出新行的实现,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02

最新评论