当前位置: 首页 > 工具软件 > eventlet > 使用案例 >

python eventlet超时_python Eventlet

鲜于阳
2023-12-01

Eventlet 是 由第二人生(Secondlife )开源的高度伸缩性的Python网络编程库.

Eventlet 可以用来处理多线程方面的工作,但它使用的是 green threads 概念,所以用资源的开销很少。

根据官方介绍大致特性如下:

非阻塞I/O模型协程(Coroutines)使得开发者可以采用阻塞式的开发风格,却能够实现非阻塞I/O的效果隐式事件调度,使得可以在Python解释器或者应用程序的某一部分去使用Eventlet

关于协程,大致可以理解成允许子程序可以多次暂停和恢复执行,是实现多任务的一种有效手段, 具体见这里.

在Python的世界里,实现了nonblocking I/O的产品并不算少.比如内置的Asyncore和著名的Twisted.相比之下,Eventlet是更容易上手和使用的。

举个例子

import eventlet

pool = eventlet.GreenPool()

while True:    pool.spawn(func,args )

上面这段代码,几乎就是使用eventlet的范式:

GreenPool 用来实现协程,保证并行;Spawn     用来调用相应的函数,完成具体业务.

每个func之间切换,实施“你运行一会、我运行一会”,并且在进行切换时必须指定何时切换以及切换到 哪,当出现阻塞时,就显式切换到另一 段没有被阻塞的代码段执行,直到原先的阻塞状况消失以后,再人工切换回原来的代码段继续处理.

注: 在python2.4中,from eventlet import *, 在python2.7中,import eventlet

 类似资料: