进程池

为什么使用进程池:

当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态成生多个进程,但如果是上百甚至上千个目标,手动的去创建进程的工作量巨大

而且极其的浪费资源!

此时就可以用到multiprocessing模块提供的Pool方法。

进程池的创建:

 1 # -*- coding:utf8 -*-
 2 #Author: ZCB
 3 
 4 from multiprocessing import Pool
 5 import os,time,random
 6 
 7 def func(msg):
 8     t_start = time.time()
 9     print("%s 开始执行,进程号为%d "%(msg,os.getpid()))
10     time.sleep(random.random()*2)  #0-1
11     t_stop = time.time()
12     print(msg,"执行完毕,耗时%0.2f"%(t_stop-t_start))
13 
14 if __name__ == '__main__':
15     pool = Pool(3)  #池里最多开三个进程
16     for i in range(10):
17         pool.apply_async(func,(i,))
18 
19     print("{:=^20}".format("start"))
20     pool.close()  #关闭进程池后,poll 不再接受新的请求
21     pool.join() # 主进程要 等待 子进程执行完毕  它必须放在 close() 后
22     print("{:=^20}".format("end"))
23     '''
24     输出:
25     =======start========
26     0 开始执行,进程号为13148 
27     1 开始执行,进程号为7988 
28     2 开始执行,进程号为1916 
29     0 执行完毕,耗时0.34
30     3 开始执行,进程号为13148 
31     1 执行完毕,耗时0.44
32     4 开始执行,进程号为7988 
33     2 执行完毕,耗时1.09
34     5 开始执行,进程号为1916 
35     4 执行完毕,耗时0.83
36     6 开始执行,进程号为7988 
37     6 执行完毕,耗时0.58
38     7 开始执行,进程号为7988 
39     5 执行完毕,耗时0.85
40     8 开始执行,进程号为1916 
41     8 执行完毕,耗时0.30
42     9 开始执行,进程号为1916 
43     3 执行完毕,耗时1.99
44     7 执行完毕,耗时1.08
45     9 执行完毕,耗时1.71
46     ========end=========
47     '''
View Code

 

注意:pool.join()一定要放在 pool.close() 后,join()的目的是让主进程等待子进程执行完毕!

 

转载于:https://www.cnblogs.com/zach0812/p/11424033.html

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可 6私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 、4下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。、可私 6信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值