
libevent
关于会飞的猪
我的github地址:https://git.oschina.net/superlike
展开
-
libevent总结(中)
五、事件处理框架 libevent的事件处理框架是一个反应堆模型,而反应堆模型的核心就是IO复用。拿epoll来说,反应堆模型有两个核心数据结构,一个是epoll维护的内核事件表,一个是保存激活事件的事件队列。当然,值的注意的是,如果是单线程或者单进程,反应堆模型一定是IO复用+异步IO,否则无法保证及时响应。下面,将分析事件注册和事件删除的具体细节。1.event_base原创 2016-05-04 20:53:24 · 6527 阅读 · 1 评论 -
libevent总结(上)
最近想手动重写一下某精简版的文档型数据库,所以想借鉴一下libevent的事件机制。之前也看过libevent的部分代码,但长时间不用已经忘的干净了。今天借此机会温习一下libevent,在此写个总结。一、简介libevent的最大看点是事件驱动和跨平台,当然还有轻量级。但是,其核心绝对是事件驱动机制。libevent的事件分为I/O事件,定时器事件和信号事件。二、使用的简原创 2016-04-05 14:47:26 · 2480 阅读 · 0 评论 -
libevent总结(下)
八、统一定时器事件和信号事件详解 和信号事件相比,把定时器事件和I/O事件统一起来就变得十分容易了,为什么?因为I/O复用机制如select(),poll(),epoll_wait()都允许设置一个最大等待时间^_^。So,让我们来看看libevent是怎样做的吧。PS:实际上很多事件驱动的软件都是这样做的。1.实现方法 核心就是在每次事件循环中设置I/O复原创 2016-06-21 21:02:43 · 11419 阅读 · 1 评论