1 / 8
文档名称:

libevent深度剖析一.docx

格式:docx   大小:112KB   页数:8页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

libevent深度剖析一.docx

上传人:分享精品 2017/12/29 文件大小:112 KB

下载得到文件列表

libevent深度剖析一.docx

文档介绍

文档介绍: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、chat等等。
;这也是本文参照的版本。
3 学习的好处
学习libevent有助于提升程序设计功力,除了网络程序设计方面外,Libevent的代码里有很多有用的设计技巧和基础数据结构,比如信息隐藏、函数指针、c语言的多态支持、链表和堆等等,都有助于提升自身的程序功力。
程序设计不止要了解框架,很多细节之处恰恰也是事关整个系统成败的关键。只对libevent本身的框架大概了解,那或许仅仅是一知半解,不深入代码分析,就难以了解其设计的精巧之处,也就难以为自己所用。
事实上Libevent本身就是一个典型的Reactor模型,理解Reactor模式是理解libevent的基石;因此下一节将介绍典型的事件驱动设计模式——Reactor模式。
libevent源码深度剖析二
——Reactor模式
张亮
前面讲到,整个libevent本身就是一个Reactor,因此本节将专门对Reactor模式进行必要的介绍,中的几个重要组件和Reactor的对应关系,在后面的章节中可能还会提到本节介绍的基本概念。
1 Reactor的事件处理机制
首先来回想一下普通函数调用的机制:程序调用某函数?函数执行,程序等待?函数将结果和控制权返回给程序?程序继续处理。
Reactor释义“反应堆”,是一种事件驱动机制。和普通函数调用的不同之处在于:应用程序不是主动的调用某个API完成处理,而是恰恰相反,Reactor逆置了事件处理流程,应用程序需要提供相应的接口并注册到Reactor上,如果相应的时间发生,Reactor将主动调用应用程序注册的接口,这些接口又称为“回调函数”。使用Libevent也是想Libevent框架注册相应的事件和回调函数;当这些时间发声时,Libevent会调用这些回调函数处理相应的事件(I/O读写、定时和信号)。
    用“好莱坞原则”来形容Reactor再合适不过了:不要打电话给我们,我们会打电话通知你。
    举个例子:你去应聘某xx公司,面试结束后。
“普通函数调用机制”公司HR比较懒,不会记你的联系方式,那怎么办呢,你只能面试完后自

最近更新

基于TRIZ创新理论的便携式耳机设计 2页

基于lTS-90的饱和水蒸气压表(O~100℃) 2页

基于IP-KVM的网管集中管理软平台的搭建与应用.. 2页

基于GMS摩擦模型的机器人低速运动研究 2页

2025年二年级上册《蓝色的树叶》教学设计 24页

城市规划工作需要研究探讨的几个问题 2页

2025年争做文明有礼好少年主题征文 8页

2025年书法的心得体会 22页

2025年乡镇防汛工作总结 61页

2025年乡镇卫生院晋升副主任医师工作业绩总结.. 21页

2025年乡村教师优秀培训心得 26页

2025年九月再见十月你好经典祝福语 34页

2025年九字春节春联 13页

在线评论影响下的供应链合作模式研究 2页

在弹塑性介质中的弹塑性圆柱体发生颈缩的分岔.. 2页

在主存中建立动态常用汉字库的探讨 2页

土石坝应力应变分析中的若干问题 2页

土壤理化分析常用电极的应用与检验 2页

土地财政转型视角下的地方税体系优化 2页

圆管结构数学模型与管端曲面加工方法 2页

圆柱体岩石试样在轴向双点负荷作用下的应力分.. 2页

2025年投标人承诺书示例 6页

西安二手房交易合同(2024版) 12页

TCMATB-9007-2022-纯肉肠标准 8页

生命线安装方案 2页

成都市中心城区施工围挡规范管理实施方案 4页

Guide to Manufacturing and Purchasing Hose.. 88页

神的属性 3页

伏尼契手稿 3页

交质公(2016年)8号附件 江苏省交通建设工程试.. 39页