python 中的进程池

from multiprocessing import Pool
import time,random
def jincheng(i):
    print('%s开始'%i)
    time.sleep(random.random())		#加时间是为了体现多进程的并发效果
    print('%s结束'%i)
if __name__ == '__main__':
    p=Pool(3)   	#设定进程池容量
    for i in range(10):  	   #有十个任务等待执行
        p.apply_async(jincheng,args=(i,))  	 #把任务加到进程池中,注意args的参数是元祖
    p.close()
    p.join()    	#必须加阻塞,因为在有进程池的多进程中,主进程不会等待子进程先结束
    print('主进程结束了')

进程池是面对有许多进程需要,而不想创建众多进程,设置一个进程池里面可以并发执行一定数量的任务,来轮番执行众多任务。当进程池中有任务完成,位置有空缺时下一个等待中的任务就会替补上去。就好比一个营业大厅设置固定数量的服务窗口,每个窗口都有一个人在接受服务后面有人在排队等待,前面的办完,后面的上去。不可能为每一个客户开辟个人窗口。这样会节省资源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值