eventlet方法统计

eventlet.spawn(func, *args, **kw)

产生一个绿色线程,调用func(*args, **kw)

This launches a greenthread to call func. Spawning off multiple greenthreads gets work done in parallel. The return value from spawn is a greenthread.GreenThread object, which can be used to retrieve the return value of func. See spawn for more details.

eventlet.spawn_n(func, *args, **kw)

产生一个绿色线程,调用func(*args, **kw),没有返回信息

The same as spawn(), but it’s not possible to know how the function terminated (i.e. no return value or exceptions). This makes execution faster. See spawn_n for more details.

eventlet.spawn_after(seconds, func, *args, **kw)

spawn,延时seconds秒版启动执行

Spawns func after seconds have elapsed; a delayed version of spawn(). To abort the spawn and prevent func from being called, call GreenThread.cancel() on the return value of spawn_after(). See spawn_after for more details.

eventlet.monkey_patch(os=False)(补丁函数)

对模块进行绿化,参数为表示对哪些模块进行。

eventlet.monkey_patch(all=True, os=False, select=False, socket=False, thread=False, time=False)
Globally patches certain system modules to be greenthread-friendly. The keyword arguments afford some control over which modules are patched. If all is True, then all modules are patched regardless of the other arguments.
 If it’s False, then the rest of the keyword arguments control patching of specific subsections of the standard library. Most patch the single module of the same name (os, time, select). The exceptions are socket, which also patches the ssl module if present;
 and thread, which patches thread, threading, and Queue. It’s safe to call monkey_patch multiple times. For more information see Monkeypatching
 the Standard Library.

Eventlet是一个基于Python的网络库,它提供了协程和事件驱动的编程模型,允许开发者使用同步的方式编写异步的代码。Eventlet的核心是绿色线程(greenlet),它允许多个绿色线程在一个线程中并发执行,从而消除了线程切换的开销。 Eventlet支持多种协议,包括TCP、UDP、HTTP、WebSocket等,同时还提供了对其他Python库的集成支持,如MySQL、PostgreSQL、Redis等。Eventlet还提供了一些有用的工具类,如线程池、定时器、协程池等,以及一些方便的函数,如spawn、sleep、wait等,使得编写异步代码变得更加容易。 Eventlet的使用非常简单,只需要导入eventlet库,并使用其提供的函数创建服务器或客户端即可。下面是一个简单的Eventlet服务器示例: ```python import eventlet def handle(client_socket, address): while True: data = client_socket.recv(1024) if not data: break client_socket.sendall(data) pool = eventlet.GreenPool() server_socket = eventlet.listen(('0.0.0.0', 1234)) while True: client_socket, address = server_socket.accept() pool.spawn(handle, client_socket, address) ``` 该示例创建了一个TCP服务器,使用GreenPool来管理绿色线程池,每个客户端连接都会创建一个新的绿色线程来处理。在handle函数中,我们使用recv和sendall函数来接收和发送数据,由于GreenPool会自动切换绿色线程,因此我们可以使用同步的方式编写异步代码。 总的来说,Eventlet是一个功能强大、易用性高的异步网络库,它可以帮助开发者编写高性能、高并发的网络应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值