最近用python写一个网络服务的模拟测试程序,先是用同步socket实现了一个简单的server,后来发现要没法添加定时器来定时处理一些任务,于是网上搜索python的异步事件框架库,发现了gevent。
1. gevent介绍
gevent是一个python的网络库,它使用greenlet轻量级线程,使用libevent实现事件驱动。我写的模拟测试程序只使用了libevent的事件驱动,下面就只介绍下gevent的事件驱动编程。
2. 事件驱动
事件驱动顾名思义,就是通过事件来驱动程序的运行,它主要包括三个部分:事件,事件处理,事件分发。gevent是事件驱动是对libevent的封装,因此它关于上述三个部分的描述也类似于libevent。
gevent的事件驱动处理都在gevent.core模块,主要包含以下类:
- event(事件)
class gevent.core.event(evtype, handle, callback[, arg])

本文介绍了如何使用gevent进行事件驱动编程,gevent是一个基于greenlet和libevent的Python网络库。文章详细讲解了gevent的事件驱动模型,包括事件、事件处理和事件分发,并展示了如何创建和管理事件,如read_event、write_event、timer和signal。同时,文章给出了开发流程和一个简单的echo服务器示例,展示如何结合gevent.core.init()、事件创建、事件添加和gevent.core.loop()来实现事件循环。
最低0.47元/天 解锁文章
776

被折叠的 条评论
为什么被折叠?



