首页 > 系统服务 > 详细

pool创建多进程

时间:2016-08-30 18:06:50      阅读:233      评论:0      收藏:0      [点我收藏+]

这中方式用的比较多,毕竟要控制并发数量,不可能不限制并发数

 

 1 #_*_coding:utf-8_*_
 2 from multiprocessing import  Pool
 3 import time
 4 
 5 def f(x):
 6     #制造一个进程超时的效果
 7     if x == 4:
 8         time.sleep(4)
 9     else:
10         time.sleep(1)
11     return x*x
12 
13 
14 
15 if __name__ == __main__:
16    pool = Pool(processes=4)
17    res_list = []
18    #执行方法,res= pool.apply_async(f,[i,])  这只是一种写法.以下这些行用这一条就能搞定print pool.map(f,range(5))
19    for i in range(5):
20     #异步方式
21     res= pool.apply_async(f,[i,])
22     print ----:,i
23     res_list.append(res)
24    #循环获取结果
25    for i in res_list:
26         try:
27            #打印结果,如果获取结果超过2秒钟将报异常
28            print i.get(timeout=2)
29         except Exception:
30             print "进程:%s 获取结果超时"% i

显示结果:

----: 0
----: 1
----: 2
----: 3
----: 4
0
1
4
9
进程:<multiprocessing.pool.ApplyResult object at 0x00000000026C9CF8> 获取结果超时

 

这个例子主要是告诉大家如何使用pool,例子中可以使用print pool.map(f,range(5))就搞定。不用写那么多行

每个人的写法都不一样 所以就看大家的了

pool创建多进程

原文:http://www.cnblogs.com/menkeyi/p/5822716.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!