进程池技术
产生原因:如果有大量任务需要多进程完成,则可能需要频繁地创建删除进程,给计算机带来较多的资源消耗
原理:创建适当的进程放入进程池,用来处理待处理事件,处理完毕后进程不销毁,仍然在进程池中等待处理其他事件,进程的复用降低了资源的消耗
使用方法:
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 可迭代对象
返回值:返回事件函数的返回值列表
发表评论