IO多路复用—前言

I/O多路复用基本思想:

  • 先构造一张有关描述符的表,然后调用一个函数。
  • 当这些文件描述符中的一个或多个已准备好进行I/O时函数才返回。
  • 函数返回时告诉进程哪个描述符已就绪,可以进行I/O操作。

理解:同时对多个文件描述符进行监听,当有文件描述符发生相应的事件的时候,返回这个文件描述符。

实现IO多路复用的方式 ------select poll epoll;

为了用这些函数创建并发服务器!!!

select特点

优点:可跨平台,轻量级;
LINUX,MACOS,Windows都可用

可以同时监听多个文件描述符

缺点:

1.最大监听文件描述符数量1024,最多监听1020个客户

2.每次轮询消耗cpu

3.每次都要拷贝 一次

poll特点

优点:

  1. 优化了监听的文件描述符数量,能监听的文件描述符数取决于数组的大小,数组大小受限于内存。
  2. 不需要每次都重新构建文件描述符表,传入一次即可。

缺点:

需要轮询(只能用在UNIX原生系统下,不支持跨平台)

epoll特点

缺点:

只能跑在Linux

优点:

  1. 不要轮询,以为有异步通知机制在
  2. 不需要每次都拷贝表
  3. 高并发,百万级别
相关推荐
虎头金猫1 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
AI职业加油站1 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
此冬歌咏1 天前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
-梅1 天前
linux(8) 软硬链接
linux·运维·服务器
Wang's Blog1 天前
Java 项目实战: 外卖平台-文件下载与ServletOutputStream回写浏览器
服务器·项目开发
张洛闻Eren1 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github
琥珀色糖1 天前
SimlpeHttp
linux·服务器
其实防守也摸鱼1 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
第十人i1 天前
Linux 日志管理系统:journald 配置与优化
linux·服务器
布裘1 天前
【银河麒麟】V4桌面图标消失,右击鼠标没反应排查
运维·银河麒麟·桌面环境