libevent解读一

libevent是高性能的C语言网络库,采用Reactor模型,支持跨平台和多种I/O多路复用技术。本文介绍了libevent的特点、Reactor模式的工作原理,以及libevent事件处理流程和核心代码,为读者提供了深入理解libevent的视角。
摘要由CSDN通过智能技术生成

一、接触libevent

libevent是用C语言编写的开源高性能网络库,是学习网络编程、后台开发必备的源码学习资料。其源代码相当精炼、易读,设计技巧和技术框架也很精彩,所以在此我也将我的理解与思考与大家分享,后期我自己也模仿实现了C++版本的网络库,欢迎一起来讨论。


二、libevent特点

-高性能,体现在使用了事件驱动的设计模式,即Reactor模型。

-跨平台,支持目前几乎所有操作系统。

-支持多种I/O多路复用技术epoll、poll、select、kqueue等,并在此基础上进行封装,提供统一接口。

-将I/O、定时器、信号三者事件集成统一。


三、Reactor模式

        提到网络编程,不得不提主流的也是使用最广泛的Reactor设计模式(另一个是Preactor模式),那么什么是Reactor,翻译过来是“反应堆”,它不同于传统的顺序执行逻辑,而是运用了回调函数的技术,应用程序将相应的接口注册到Reactor上,如果有相应的事件发生,Reactor将主动调用应用程序注册的接口来实现功能。举个例子:用手机订外卖,订完可以干其他事,外卖好了自然有骑手送上门,也就意味着可以开吃了,而不用去一遍遍去咨询商家外卖是否做好。如下图是Reactor模型的架构图。


其中,Reactor作为所有事件的管理组件,支持事件的注册与注销,内部通过调用操作系统的I/O多路复用技术进行事件循环,当有事件到达时,调用相应的Event Handler。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值