码迷,mamicode.com
首页 > 系统相关 > 详细

多任务进程池

时间:2019-08-21 15:14:52      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:async   odi   最大   参数   ==   ESS   art   接受   sleep   

 1 # -*- coding:utf-8 -*-
 2 from multiprocessing import Pool
 3 import os,time,random
 4 
 5 
 6 def worker(msg):
 7     t_start = time.time()
 8     print("%s开始执行" % (msg))
 9     # print("进程号是:%d" % os.getpgid())
10     # random.random()随机生成0-1之间的浮点数
11     time.sleep(random.random()*2)
12     t_stop = time.time()
13     print(msg,"执行完毕,耗时%.2f" % (t_stop-t_start))
14 
15 
16 # worker(1)
17 def main():
18     # 定义一个进程池,最大进程为3
19 
20     po = Pool(3)
21     for i in range(0,10):
22         # Pool().apply_async(要调用的目标,(以元祖的形式传递给目标的参数,))
23         # 每次循环将会用空闲出来的子进程去调用目标
24         po.apply_async(worker,(i,))
25 
26     print("----------start------------")
27     po.close()  # 关闭进程池,关闭后po不再接受新的请求
28     po.join()  # 等带po中所有子进程执行完成,必须放在close语句之后
29     print("----------end------------")
30 
31 
32 if __name__ == __main__:
33     main()
----------start------------
0开始执行
1开始执行
2开始执行
2 执行完毕,耗时0.04
3开始执行
1 执行完毕,耗时0.88
4开始执行
0 执行完毕,耗时1.33
5开始执行
4 执行完毕,耗时1.02
6开始执行
3 执行完毕,耗时1.88
7开始执行
7 执行完毕,耗时0.96
8开始执行
6 执行完毕,耗时0.99
9开始执行
5 执行完毕,耗时1.90
8 执行完毕,耗时1.09
9 执行完毕,耗时1.19
----------end------------

  

多任务进程池

标签:async   odi   最大   参数   ==   ESS   art   接受   sleep   

原文地址:https://www.cnblogs.com/yifengs/p/11388796.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!