适用于有大量的事件,每个事件的执行时间不长的情况
- 创建进程池,放入适当的进程
from multiprocessing import Pool
Pool(processes)
功能:创建进程池对象
参数:指定进程数量,默认根据系统自动判定
- 将事件加入进程池队列执行
pool.apply_async(func,args,kwds)
功能:使用进程池执行 func事件
参数:
- func 事件函数
- args 元组 给func按位置传参
- kwds 字典 给func按照键值传参
返回值:返回函数事件对象
- 关闭进程池
pool.close()
- 回收进程池中进程
pool.join()
功能:回收进程池中进程
from multiprocessing import Pool
from time import sleep,ctime
#进程池执行事件
def worker(msg):
sleep(2)
print(ctime,'--',msg)
#创建进程池,默认个数。创建进程池时进程就生成了
pool = Pool()
#添加进程事件
for i in range(10): #向队列中放入10个事件
msg = 'Tedu %d' %i
#将事件加入进程池队列中,func绑定进程事件函数,arg是个元组
pool.apply_async(func=worker,args=(msg,))
#关闭进程池,不能再添加新的事件
pool.close()
#回收进程池
pool.join()
来源:CSDN
作者:俞泰鑫
链接:https://blog.csdn.net/god_yutaixin/article/details/103455432