socket-IO复用技术

五个I/O模型

1、阻塞I/O

2、非阻塞I/O

3、I/O复用(select和poll)

4、信号驱动I/O

5、异步I/O

I/O复用

        是一种在单线程或单进程环境下,同时监听多个 I/O 事件的技术。它允许程序高效地处理多个输入输出流(如网络套接字、文件描述符等),避免了为每个 I/O 流创建一个独立的线程或进程,从而减少了系统资源的开销。

常用技术

select

        工作方式select 是最早的 I/O 复用机制之一。它使用一个 fd_set 数据结构来表示文件描述符集合,通过 select 函数来监控这些文件描述符的可读、可写和异常状态。当有事件发生时,select 函数会返回,并修改 fd_set 集合,指示哪些文件描述符有事件发生。

poll

        工作方式poll 与 select 类似,但它使用一个 pollfd 结构体数组来表示文件描述符集合,并且没有文件描述符数量的限制(select 有最大文件描述符数量的限制)。poll 函数会监控这些文件描述符的状态变化,并在有事件发生时返回。

epoll

        工作方式epoll 是 Linux 特有的 I/O 复用机制,它通过事件驱动的方式来工作,使用红黑树来管理文件描述符集合,使用链表来管理就绪的文件描述符。epoll 有更高的效率,特别是在处理大量并发连接时,因为它只需要遍历就绪的文件描述符,而不需要像 select 和 poll 那样遍历整个文件描述符集合。

epoll函数

参考:epoll函数-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值