python进程池技术:产生原因/原理/使用方法Pool(processes)

python进程池技术:产生原因/原理/使用方法Pool(processes)

进程池技术

产生原因:如果有大量任务需要多进程完成,则可能需要频繁地创建删除进程,给计算机带来较多的资源消耗

原理:创建适当的进程放入进程池,用来处理待处理事件,处理完毕后进程不销毁,仍然在进程池中等待处理其他事件,进程的复用降低了资源的消耗

使用方法

1.创建进程池,在池内放入适当的进程

2.将事件加入到进程池等待队列

3.不断取进程执行事件,直到所有事件执行完毕

4.关闭进程池,回收进程

from multiprocessing import Pool

Pool(processes) #创建进程池对象,processes表示进程池中有多少进程

r = Pool.apply_async(func,args,kwds) #将事件放入到进程池队列,异步执行(常用)

参数:func 事件函数

  args 以元组形式给func传参

  kwds 以字典形式给func传参

返回值:返回一个代表进程池事件的对象

r.get():得到进程运行时的返回值

Pool.apply(func,args,kwds) #将事件放入到进程池队列,同步执行(不常用)

参数:func 事件函数

  args 以元组形式给func传参

  kwds 以字典形式给func传参

Pool.close() #关闭进程池

Pool.join() #回收进程池、

Pool.map(func,iter) #将要做的事件放入进程池

参数:func 要执行的函数

      iter 可迭代对象

返回值:返回事件函数的返回值列表


最后编辑于:2019/10/29作者: 牛逼PHP

发表评论