I/O多路复用技术

本文讨论了I/O多路复用技术如何在单线程中处理多个用户请求,对比其与多线程/多进程的优势,包括系统开销小、资源节省,并重点介绍了select和epoll等支持I/O多路复用的系统调用,特别提到epoll在高并发场景中的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        I/O多路服用技术通过把多个I/O的阻塞复用到同一个select的阻塞上,从而使得系统在单线程的情况下可以同时处理多个用户请求。

        一.与多线程/多进程相比优势:

        1.系统开销小;

        2.系统不需要额外的进程或线程;也不需要维护这些进程和线程的运行降低了系统维护工作量,节省系统资源。

       二. I/O多路服用技术使用场景

        1.服务器需要同时处理多个处于监听状态或多个连接状态的套接字

        2.服务器需要同时处理多种网络协议的套接字。

        三.支持I/O多路复用系统调用有select,pselect,poll,epoll,主流使用select,epoll。

        1.select最大的缺陷是单个进程所打开的文件描述符是有一定限制的,FD_SETSIZE=1024;如果是大型上万TCP连接的场景显然不合适,然而,epoll并没有这个限制,它支持的文件描述符上限是操作系统的最大文件句柄数,最大文件句柄数由内存关系比较大,可通过cat /proc/sys/fs/file -max查看。

        2.select是顺序扫描,每次扫描socket集合时间比较长,epoll则不是。

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

diannao720

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

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

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

打赏作者

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

抵扣说明:

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

余额充值