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

 #_*_coding:utf-8_*_
from multiprocessing import Pool
import time def f(x):
#制造一个进程超时的效果
if x == 4:
time.sleep(4)
else:
time.sleep(1)
return x*x if __name__ == '__main__':
pool = Pool(processes=4)
res_list = []
#执行方法,res= pool.apply_async(f,[i,]) 这只是一种写法.以下这些行用这一条就能搞定print pool.map(f,range(5))
for i in range(5):
#异步方式
res= pool.apply_async(f,[i,])
print '----:',i
res_list.append(res)
#循环获取结果
for i in res_list:
try:
#打印结果,如果获取结果超过2秒钟将报异常
print i.get(timeout=2)
except Exception:
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))就搞定。不用写那么多行

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

最新文章

  1. 探索ASP.NET MVC5系列之~~~3.视图篇(下)---包含常用表单和暴力解猜防御
  2. CSS3使用Font Awesome字体图标的控件样例(按钮,工具栏,输入框)
  3. Android属性动画源代码解析(超详细)
  4. python用迭代器方式便利目录下的文件
  5. NYOJ题目65另一种阶乘问题
  6. ASP.NET MVC 5 入门教程 (2) 控制器Controller
  7. C语言之移位操作
  8. BinaryWriter和BinaryReader用法
  9. JAVA基础之理解JNI原理
  10. 重新开始学习javase_控制程序流程
  11. iOS基础 - 内存分析
  12. [转] SpringJdbc的几种不同的用法
  13. 分布式架构--Dubbo项目实战学习文档
  14. Head First设计模式之迭代器模式
  15. 如何更改Linux的ssh端口
  16. spider 爬虫文件基本参数(3)
  17. echarts堆叠图添加总量
  18. js把页面的table标签导出为csv
  19. MyBatis探究-----传递参数详解
  20. Mysql清空表(truncate)与删除表中数据(delete)的区别

热门文章

  1. 数据库 插入时 碰到NULL报错判断的一种方法(技巧)
  2. ASP.Net中表单POST到其他页面的方法
  3. bootstrap-select,selectpicker 用法详细:通过官方文档翻译
  4. Java面试中常问的Spring方面问题(涵盖七大方向共55道题,含答案)
  5. react-native关于ios的启动图标设置
  6. JSTL标签库笔记
  7. Openflow Plugin学习笔记2
  8. mysql数据库单表增删改查命令
  9. C# 开发(创蓝253)手机短信验证码接口
  10. openjudge-NOI 2.6-1996 登山