Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5017745
  • 博文数量: 921
  • 博客积分: 16037
  • 博客等级: 上将
  • 技术积分: 8469
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-05 02:08
文章分类

全部博文(921)

文章存档

2020年(1)

2019年(3)

2018年(3)

2017年(6)

2016年(47)

2015年(72)

2014年(25)

2013年(72)

2012年(125)

2011年(182)

2010年(42)

2009年(14)

2008年(85)

2007年(89)

2006年(155)

分类: Python/Ruby

2012-03-15 11:07:19



  1. #! /usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. #Author:pako
  4. #Email/gtalk:zealzpc@gmail.com
  5. from twisted.python import threadable
  6. threadable.init(1)
  7. from twisted.internet import threads, reactor,defer
  8. from random import randint
  9. import time
  10.     
  11. def run():
  12.     
  13.     result=[]
  14.     
  15.     def listCallback(result):
  16.         """
  17.                     拿到所有线程执行完返回的结果
  18.         """
  19.         result=[r[1] for r in result]
  20.         print result
  21.         print "deferlist result =", result
  22.     
  23.     def doSomeLongTimeThing(sleeptime=0):
  24.         """
  25.                     每个线程同时做的耗时的事
  26.         """
  27.         print sleeptime
  28.         time.sleep(sleeptime)
  29.         return sleeptime
  30.     
  31.     deferlist=[]
  32.     #创建deferlist中的deferred
  33.     for i in range(10):
  34.         d = threads.deferToThread(doSomeLongTimeThing,sleeptime=randint(3,5))
  35.         deferlist.append(d)
  36.     #创建deferredlist
  37.     dl = defer.DeferredList(deferlist)
  38.     #给deferredlist添加回调函数
  39.     dl.addBoth(listCallback)
  40.     print "1st line after the addition of the callback"
  41.     print "2nd line after the addition of the callback"

  42. if __name__ == '__main__':
  43.     run()
  44.     reactor.run()


阅读(983) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~