本系列文章翻译自英文官方文档,原文请访问官方文档
如果这是您第一次使用Eventlet,您可能会发现设计模式文档中的示例是一个很好的起点。
Eventlet是围绕绿色线程(即协程,我们使用术语可互换)的概念构建的,这些概念是为了进行与网络相关的工作而启动的。绿色线程与正常线程的区别主要有两种:
eventlet.spawn(func, *args, **kw)
创建一个绿色线程来执行func函数。多个绿色线程可以并发执行。spawn的返回值是一个greenthread.GreenThread
对象,这个对象可以用来检索func函数的返回值或者异常信息。
eventlet.spawn_n(func, *args, **kw)
功能与spawn类似,但是没有返回值,也不抛异常。执行比spawn更快。
eventlet.spawn_after(seconds, func, *args, **kw)
spawn的延迟执行版本。
注:Spawn是“量产”的意思。
eventlet.sleep(seconds=0)
挂起协程,使得别的协程可以执行。
class eventlet.GreenPool
用池化技术控制并发。使得内存消耗、并发连接数是可控的,并进而为系统中的其他部分预留资源。
class eventlet.GreenPile
(协程堆)
GreenPile对象表示“任务块”。一个GreenPile是一个可以被塞满任务的迭代器,任务的结果会在稍后被读出。
class eventlet.Queue
在协程之间通信、传递数据的工具。
class eventlet.Timeout
在协程中添加超时机制的工具。在指定超时时间后,抛出异常。
eventlet.import_patched(modulename, *additional_modules, **kw_additional_modules)
eventlet.monkey_patch(all = True,os = False,select = False,socket = False,thread = False,time = False )
导入绿化过的模块。