系统相关
首页 > 系统相关> > python 进程池实现 pool

python 进程池实现 pool

作者:互联网

进程池实现

必要性

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

原理

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

进程池实现

from multiprocessing import Pool

Pool(processes)
功能: 创建进程池对象
参数: 指定进程数量,默认根据系统自动判断
pool.apply_async(func,args,kwds)
功能: 使用进程池执行 func 事件
参数: func 事件函数
    args 援助 给func按位置传参
    kwds 字典 给func按照键值传参
返回值: 返回函数事件对象    

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-s2bPdL8p-1639547710633)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20211215133133087.png)]

简单的代码例子

"""
进程池使用实例
"""

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 ' % i
        pool.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 

标签:15,Wed,python,50,--,进程,Tedu,pool
来源: https://blog.csdn.net/jialan75/article/details/121950810