【阅读】《Linux高性能服务器编程》——第十二章:高性能I/O框架库libevent

高性能I/O框架库libevent

12.1 I/O框架库概述

  基于Reactor模式的I/O框架库包含组件:句柄、事件多路分发器、具体事件处理器、Reactor。

I/O框架库组件

  • 句柄:I/O框架库要处理的对象,即I/O事件、信号和定时器,统一称为事件源。一个事件源通常和一个句柄绑定在一起。当内核检测到就绪事件时,通过句柄来通知应用程序。
  • 时间多路分发器:事件的到来是随机的、异步的,因此程序需要循环地等待并处理事件,即事件循环。等待事件通常使用I/O复用技术来实现,I/O框架库一般将支持各种I/O服用系统调用封装成统一接口,称为事件多路分发器。
  • 事件处理器:事件处理器执行事件对应的业务逻辑,通常包含一个或多个handle_event回调函数。I/O框架库提供的事件处理器通常是一个接口,需要继承它来实现自己的事件处理器。因此事件处理器的回调函数一般被声明为虚函数。一般还提供get_handle方法,返回与该事件关联的句柄。
  • Reactor:handle_event(该方法执行事件循环,过程为:等待时间、处理所有就绪事件对应的事件处理器);register_handler(该方法调用时间多路分发器地register_event方法来往事件多路分发器中注册一个事件);remove_handler(该方法调用时间多路分发器地remove_event方法来删除事件多路分发器中的一个事件)。

IO框架库的工作时序


12.2 Libevent源码分析

Libevent特点:

  • 跨平台支持;
  • 统一事件源;
  • 线程安全;
  • 基于Reactor模式实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

甄姬、巴豆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值