网络编程tcp/ip多路复用 对selece()函数的使用
多路io复用:
io模型:
阻塞io:最常用,最简单,效率最低
非阻塞io:防止进程阻塞在io上,需要轮询
多路复用io:允许同时对多个io进行控制:内核添加一张表,监听表里面的信息,当有资源准备就绪
就执行资源==》文件描述符去除与否 创建表==》监听表
缺点:每次调用select,都需要把fd集合从用户态拷贝到内核态,这个开销在fd很多时会很大。
同时每次调用select都需要在内核遍历传递进来的所有fd,这个开销在fd很多时也很大。
select支持的文件描述符数量太小,默认1024
信号驱动io:
原创
2020-08-20 20:28:14 ·
384 阅读 ·
0 评论