#进程池的问题 #创建的进程不多的时候可以直接使用方法一或方法二, # 如果要创建很多进程时,手动创建的工作量太大,所以就用到了进程池 """ 池: 1.体积不是太大,也不是太小,可控 2.水位:进程个数的多少 3.容量有限 """ #创建进程池 #步骤一:导入模块 # from multiprocessing import Pool #步骤二:创建 #格式:Pool(n) n表示进程个数,基本上认为不设上限,(但是有上限) # Pool(n) from multiprocessing import Pool import time,random def worker(msg): t_start=time.time() print("%s--开始执行"%(msg)) time.sleep(random.randint(0,2)) #模拟工作所消耗的时间 t_end=time.time() print("%s--执行完毕,消耗时间为%.2f"%(msg,t_end-t_start)) if __name__ == '__main__': p=Pool(3) #设置容量是3的进程池,开发的时候基本上不设上限 for i in range(10): #把进程添加到进程池 #格式:进程池.apply_async(func="进程要调用的目标",args=(参数1,2,3)) #每次循环将会用空闲的子进程来调用目标 p.apply_async(func=worker,args=(i,)) #异步操作 # p.apply(func=worker, args=(i,)) 是一个串行操作,以后开发基本上用不到 #关闭进程池,关闭进程池后将不在进行新任务, p.close() #等待进程池中所有进程执行完后再执行,注意join一定要放在close后 p.join() #阻塞他们 print("结束")
进程池问题day17
猜你喜欢
转载自blog.csdn.net/qq_39112101/article/details/88424794
今日推荐
周排行