营销网站制作费用,亚马逊雨林火灾,关于文艺网站建设政策,网站搭建好了怎么上到服务器libevent源码深度剖析一
——序幕 张亮 1 前言
Libevent是一个轻量级的开源高性能网络库#xff0c;使用者众多#xff0c;研究者更甚#xff0c;相关文章也不少。写这一系列文章的用意在于#xff0c;一则分享心得#xff1b;二则对libevent代码和设计思想做系统的、更…libevent源码深度剖析一
——序幕 张亮 1 前言
Libevent是一个轻量级的开源高性能网络库使用者众多研究者更甚相关文章也不少。写这一系列文章的用意在于一则分享心得二则对libevent代码和设计思想做系统的、更深层次的分析写出来也可供后来者参考。 附带一句Libevent是用c语言编写的MS大牛们都偏爱c语言哪而且几乎是无处不函数指针学习其源代码也需要相当的c语言基础。
2 Libevent简介
上来当然要先夸奖啦Libevent 有几个显著的亮点 事件驱动event-driven高性能; 轻量级专注于网络不如ACE那么臃肿庞大 源代码相当精炼、易读 跨平台支持Windows、Linux、*BSD和Mac Os 支持多种I/O多路复用技术 epoll、poll、dev/poll、select和kqueue等 支持I/O定时器和信号等事件 注册事件优先级 Libevent已经被广泛的应用作为底层的网络库比如memcached、Vomit、Nylon、Netchat等等。 Libevent当前的最新稳定版是1.4.13这也是本文参照的版本。
3 学习的好处
学习libevent有助于提升程序设计功力除了网络程序设计方面外Libevent的代码里有很多有用的设计技巧和基础数据结构比如信息隐藏、函数指针、c语言的多态支持、链表和堆等等都有助于提升自身的程序功力。 程序设计不止要了解框架很多细节之处恰恰也是事关整个系统成败的关键。只对libevent本身的框架大概了解那或许仅仅是一知半解不深入代码分析就难以了解其设计的精巧之处也就难以为自己所用。 事实上Libevent本身就是一个典型的Reactor模型理解Reactor模式是理解libevent的基石因此下一节将介绍典型的事件驱动设计模式——Reactor模式。 参考资料 Libevent: http://monkey.org/~provos/libevent/