进程池
在需要频繁的创建删除较多进程的情况下,导致计算机资源消耗过多
进程池如何处理
1.创建进程池,在池内放入适量的进程
2.将事件加入进程池等待队列
3.使用进程池中的进程不断处理事件
4.所有事件处理后,回收关闭进程池
from multiprocessing import Pool
Pool()
功能:创建进程池
参数:precesses:指定进程池中进程数量
返回值:得到进程池对象
pool.apply_async()
功能:异步方式将事件放入进程池执行
参数: func:要执行的事件函数
args:同Process args
kwds:同Process kwargs
返回值:返回一个对象,该对象可以通过get()方法得到func函数的返回值
pool.close()
功能:关闭进程池,使其无法加入新事件
pool.join()
功能:阻塞等待进程池退出(当所有事件处理完毕后)
pool.apply()
用法和apply_async一样,只是需要顺序执行,一个
事件结束后再执行另一个事件
pool.map(func,iter)
功能:类似于内建函数map,将第二个参数的迭代数传递给第一个参数的函数执行。同时兼容了使用进程池执行
返回值:返回func的返回值列表
r=pool.map(func,test)–>
r=[]
for i in test:
res=pool.apply_async(fun,(i,))
r.append(res.get())