libevent网络库
文章平均质量分 89
Libevent 是一个轻量级的开源高性能网络库。
生若直木,不语斧凿ᝰ
口红都买不起谈什么恋爱
展开
-
libebent_简介
Libevent 是一个轻量级的开源高性能网络库,使用者众多,研究者更甚;Libevent 是用 c 语言编写的,而且几乎是无处不函数指针,Libevent 已经被广泛的应用,作为底层的网络库;比如 memcached、Vomit、Nylon、Netchat等等。Libevent 简介:优点:事件驱动(event-driven),高性能; 轻量级,专注于网络,不如 ACE 那么臃肿庞...原创 2019-08-16 08:57:25 · 222 阅读 · 0 评论 -
libevent_Rector模式
1.Reactor 模式是编写高性能网络服务器的必备技术之一,它具有如下的优点:响应快,不必为单个同步时间所阻塞,虽然 Reactor 本身依然是同步的; 编程相对简单,可以最大程度的避免复杂的多线程及同步问题,并且避免了多线程/进程的切换开销; 可扩展性,可以方便的通过增加 Reactor 实例个数来充分利用 CPU 资源; 可复用性,reactor 框架本身与具体事件处理逻辑...原创 2019-08-16 09:25:19 · 191 阅读 · 0 评论 -
libevent_事件注册流程
1.以定时事件的注册(设置定时器)为例来进行libevent事件注册:1)首先初始化 libevent 库,并保存返回的指针 struct event_base * base = event_init();实际上这一步相当于初始化一个 Reactor 实例;在初始化 libevent 后,就可以注册事件了。2)初始化事件 event,设置回调函数和关注的事件 ev...原创 2019-08-16 10:10:11 · 430 阅读 · 0 评论 -
libevent_事件处理流程
1.当应用程序向libevent注册一个事件后,其内部处理事件的基本流程如下:1) 首先应用程序准备并初始化 event,设置好事件类型和回调函数;这对应于前面第步骤2 )和 3);2) 向 libevent 添加该事件 event。对于定时事件,libevent 使用一个小根堆管理,key 为超时时间;对于 Signal 和 I/O 事件,libevent 将其放入到等待链表(双向链表wa...原创 2019-08-16 10:24:22 · 380 阅读 · 0 评论 -
libevent_事件处理框架event_base
目录1.event_base 结构体2.创建和初始化3.主要的接口函数4.事件的统一1.event_base 结构体 Reactor 框架组件在 libevent中,表现为 event_base 结构体:struct event_base { const struct eventop *evsel; void *evbase; i...原创 2019-08-16 14:14:19 · 660 阅读 · 0 评论 -
libevent_核心event
Libevent 是基于事件驱动的,从名字也可以看到 event 是整个库的核心。event 就是 Reactor 框架中的事件处理程序组件;它提供了函数接口,供 Reactor 在事件发生时调用,以执行相应的事件处理,通常它会绑定一个有效的句柄。1.event结构体:/*事件类型宏定义*/#define EV_TIMEOUT 0x01 #define EV_READ 0x02...原创 2019-08-16 12:05:15 · 134 阅读 · 0 评论 -
libevent_定时器集成
目录1.集成策略2.timer小根堆1.集成策略1)系统的 I/O 机制像 select()和 epoll_wait()都允许程序制定一个最大等待时间(也称为最大超时时间)timeout,即使没有 I/O 事件发生,它们也保证能在 timeout 时间内返回。那么根据所有 Timer 事件的最小超时时间来设置系统 I/O 的 timeout 时间;当系统 I/O返回时,再激活...原创 2019-08-16 18:56:03 · 174 阅读 · 0 评论 -
libevent_信号集成
目录1.集成策略2.socket pair创建过程3.Signal 事件的管理4.注册、注销 signal 事件1.集成策略1) 当 Signal 发生时,并不立即调用 event 的 callback ()函数处理信号,而是设法通知系统的 I/O 机制,让其返回,然后再统一和 I/O 事件以及 Timer事件 一起处理。2) 关键在于如何通知系统的I/O多路...原创 2019-08-16 18:22:23 · 168 阅读 · 0 评论