Linux高性能服务器编程——ch12笔记

第12章 高性能I/O框架库Libevent

12.1 I/O框架库概述

基于Reactor模式的I/O框架库包含:

1)句柄:与事件源绑定(I/O事件、信号和定时事件)。当内核检测到就绪事件时,通过句柄来通知应用程序这一事件。I/O事件对应的句柄是文件描述符,信号事件对应的句柄就是信号值。

2)事件多路分发器:等待事件使用I/O复用实现, I/O框架库一般将系统支持的各种I/O复用系统调用封装成统一的接口。核心函数:demultiplex。事件循环:循环等待并处理事件。

3)事件处理器和具体事件处理器:事件处理器执行事件对应的业务逻辑。框架库提供的事件处理器通常是一个接口,用户需要继承它来实现自己的事件处理器,即具体事件处理器。因此,事件处理器中的回调函数一般被声明为虚函数。当事件多路分发器检测到有事件发生时,它是通过句柄来通知应用程序的。因此,必须将事件处理器和句柄绑定,才能在事件发生时获取到正确的事件处理器。

4)Reactor:handle_events(事件循环,重复:等待事件,依次处理所有就绪事件对应的事件处理器)、register_handler(调用事件多路分发器的register_events,往分发器中注册事件)、remove_handler(调用事件多路分发器的remove_event,删除分发器中事件)

12.2 Libevent源码分析

相关推荐
rannn_1111 小时前
【MySQL学习|黑马笔记|Day7】触发器和锁(全局锁、表级锁、行级锁、)
笔记·后端·学习·mysql
草莓熊Lotso2 小时前
《详解 C++ Date 类的设计与实现:从运算符重载到功能测试》
开发语言·c++·经验分享·笔记·其他
_Kayo_8 小时前
node.js 学习笔记3 HTTP
笔记·学习
星星火柴93612 小时前
关于“双指针法“的总结
数据结构·c++·笔记·学习·算法
Cx330❀14 小时前
【数据结构初阶】--排序(五):计数排序,排序算法复杂度对比和稳定性分析
c语言·数据结构·经验分享·笔记·算法·排序算法
小幽余生不加糖15 小时前
电路方案分析(二十二)适用于音频应用的25-50W反激电源方案
人工智能·笔记·学习·音视频
..过云雨15 小时前
01.【数据结构-C语言】数据结构概念&算法效率(时间复杂度和空间复杂度)
c语言·数据结构·笔记·学习
岑梓铭16 小时前
考研408《计算机组成原理》复习笔记,第五章(3)——CPU的【数据通路】
笔记·考研·408·计算机组成原理·计组
Blossom.1181 天前
把 AI 推理塞进「 8 位 MCU 」——0.5 KB RAM 跑通关键词唤醒的魔幻之旅
人工智能·笔记·单片机·嵌入式硬件·深度学习·机器学习·搜索引擎
草莓熊Lotso1 天前
《吃透 C++ 类和对象(中):const 成员函数与取地址运算符重载解析》
c语言·开发语言·c++·笔记·其他