正文

 

  在前文已经介绍过了gevent的调度流程,本文介绍gevent一些重要的模块,包括Timeout,Event\AsynResult, Semphore, socket patch,这些模块都涉及当前协程与hub的切换。本文分析的gevent版本为1.2

Timeout

回到顶部

  这个类在gevent.timeout模块,其作用是超时后在当前协程抛出异常,这样执行流程也强制回到了当前协程。看一个简单的例子:

iOS培训,Swift培训,苹果开发培训,移动开发培训

 1 SLEEP = 6 2 TIMEOUT = 5 3  4 timeout = Timeout(TIMEOUT) 5 timeout.start() 6  7 def wait(): 8     gevent.sleep(SLEEP) 9     print('log in wait')10 11 begin = time.time()12 try:13     gevent.spawn(wait).join()14 except Timeout:15     print('after %s catch Timeout Exception' % (time.time() - begin))16 finally:    
17     timeout.cancel()

iOS培训,Swift培训,苹果开发培训,移动开发培训

延伸阅读

学习是年轻人改变自己的最好方式-Java培训,做最负责任的教育,学习改变命运,软件学习,再就业,大学生如何就业,帮大学生找到好工作,lphotoshop培训,电脑培训,电脑维修培训,移动软件开发培训,网站设计培训,网站建设培训学习是年轻人改变自己的最好方式