最近用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])</