libevent 相关资料

柔情痞子 提交于 2020-03-14 14:35:35

最近两天看了看libevnet 源代码~,主要学习资料是源代码libevent-2.0.21-stable、

Libevent是一个用于开发可扩展性网络服务器的基于事件驱动(event-driven)模型的网络库。Libevent有几个显著的亮点: 
(1)事件驱动(event-driven),高性能;
(2)轻量级,专注于网络; 
(3)源代码相当精炼、易读; 
(4)跨平台,支持 Windows、Linux、*BSD和 Mac Os; 
(5)支持多种 I/O多路复用技术, epoll、poll、dev/poll、select 和kqueue 等; 
(6)支持 I/O,定时器和信号等事件; 
(7)注册事件优先级; 
 Libevent 已经被广泛的应用,作为底层的网络库;比如 memcached、等等。

libevent 是Reactor 反应器模式。

 

源代码中总要的结构:

1、struct event_base.  主要控制结构,相当于Reacot模式中的reactor。 主循环,底层调用 epoll_wait()等 多路复用机制。

2、struct  event     .    事件处理程序的抽象(结构体中包含回调函数,由event_base 触发), 由event_base管理 。 event_base通过链表、二叉堆来管理event,用于优先级、定时器管理。

 

参考了以及下面几个博客,这几个博客已经总结的很好了:

http://blog.csdn.net/sparkliang/article/category/660506

http://www.cnblogs.com/hustcat/archive/2010/08/31/1814022.html

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!