博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IO模型——IO多路复用机制
阅读量:5234 次
发布时间:2019-06-14

本文共 591 字,大约阅读时间需要 1 分钟。

 

(1)I/O多路复用技术通过把多个I/O的阻塞复用到同一个select、poll或epoll的阻塞上,从而使得系统在单线程的情况下可以同时处理多个客户端请求。与传统的多线程/多进程模型比,I/O多路复用的最大优势是系统开销小,系统不需要创建新的额外进程或者线程。

(2)select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用户空间。

(3)I/O多路复用的主要应用场景如下:

需要同时处理多个处于监听状态或者多个连接状态的套接字; 

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

(4)目前支持I/O多路复用的系统调用有 select,poll,epoll,epoll与select的原理比较类似,但epoll作了很多重大改进,现总结如下:

①支持一个进程打开的文件句柄FD个数不受限制(为什么select的句柄数量受限制:select使用位域的方式来传递关心的文件描述符,因为位域就有最大长度,在Linux下是1024,所以有数量限制);

②I/O效率不会随着FD数目的增加而线性下降;

③epoll的API更加简单;

转载于:https://www.cnblogs.com/sea-stream/p/10563955.html

你可能感兴趣的文章
UVa 10061 How many zero's and how many digits?
查看>>
php Collection类的设计
查看>>
java虚拟机
查看>>
百度地图1
查看>>
HTML特殊字符编码对照表
查看>>
注册asp.net 4.0 到iis
查看>>
【BZOJ-2299】向量 裴蜀定理 + 最大公约数
查看>>
linq中的cast<T>()及OfType<T>()
查看>>
Android 4.X 系统加载 so 失败的原因分析
查看>>
定时器
查看>>
【原理图操作】原理图更新PCB时未改动元器件布局变动问题?
查看>>
React绑定事件处理函数this的几种方法
查看>>
win7 64位下如何安装配置mysql-5.7.4-m14-winx64(安装记录)
查看>>
装饰模式
查看>>
思科AP-什么是COS AP?
查看>>
查询表结构的语句总结
查看>>
某大型银行深化系统之十六:性能设计之一
查看>>
十个必备的.NET开发小工具(1):Snippet Compiler
查看>>
VS2010 NDoc的插件工具
查看>>
javac compiling error ( mising package)
查看>>