初探高性能网络I/O框架库模型(Linux)

一般的高性能网络I/O框架库包含这样几个组件:句柄(Handle)、事件多路分离器(EventDemultiplexer)、事件处理器(EventHandler)、具体事件处理器(ConcreteEventHandler)、Reactor。

1、句柄
I/O框架库需要处理的对象,包括I/O事件、定时器事件、信号事件,通常称为事件源。一个事件源通常会和一个句柄绑定起来,句柄的作用是,当内核检测到某一就绪事件后,内核通过句柄通知应用程序这一事件。在Linux中句柄就是文件描述符,信号对应的句柄就是对应的信号值。

2、事件多路分离器
事件的到来是无序、异步的,我们无法预知程序合适会接收到一个连接请求、或者其他的已监听事件。所以程序需要循环的等待并处理事件,这就是事件循环。在事件循环中实现事件循环,一般是通过I/O多路复用技术实现的。I/O框架库一般将系统支持的各种I/O复用系统调用封装成统一的接口,称为事件多路分离器。事件多路分离器的demultiplexer函数是等待事件的核心方法,其封装了select、poll、epoll_wait等函数。
    下面看一下I/O框架组件图:
节约时间直接从资料上找来的,比较标准
此外,事件多路分离器还需要实现register_event和remove_event方法,以供调用者往事件多路分离器中注册和删除事件。
3、事件处理器和具体事件处理器
事件处理器一般用来处理事件对应的业务,它通常包含一个或多个handle_event回调函数,这些回调函数在事件循环中被执行。I/O框架

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值