说明
1、初始化Pool时,可以指定流程数。
2、当新请求提交到Pool时,如果池未满,则创建新流程以执行该请求。
3、如果池中的流程数达到指定的值,则等待该请求,直到池中的流程结束为止,以之前的流程执行新的任务。
实例
#-*-coding:utf-8-*- importos,time,random frommultiprocessingimportPool defworker(msg): t_start=time.time() print("%s开始执行,进程号为%d"%(msg,os.getpid())) #random.random()随机生成0~1之间的浮点数 time.sleep(random.random()*2) t_stop=time.time() print(msg,"执行完毕,耗时%0.2f\n"%(t_stop-t_start)) defmain(): po=Pool(3)#定义一个进程池,进程数3 foriinrange(0,10): #Pool().apply_async(要调用的目标,(传递给目标的参数元祖,)) #每次循环将会用空闲出来的子进程去调用目标 po.apply_async(worker,(i,)) print("----start----") po.close()#关闭进程池,关闭后po不再接收新的请求 po.join()#等待po中所有子进程执行完成,必须放在close语句之后 print("-----end-----") if__name__=="__main__": main()
以上就是python中进程池Pool的初始化,希望对大家有所帮助。更多编程基础知识学习:python学习网
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
上一篇
下一篇