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. 高并发,百万级别
相关推荐
牛奶咖啡131 分钟前
Linux系统的常用操作命令——文件远程传输、文件编辑、软件安装的四种方式
运维·服务器·软件安装·linux云计算·scp文件远程传输·vi文件编辑·设置yum的阿里云源
weixin_437398216 分钟前
转Go学习笔记(2)进阶
服务器·笔记·后端·学习·架构·golang
难受啊马飞2.07 分钟前
如何判断 AI 将优先自动化哪些任务?
运维·人工智能·ai·语言模型·程序员·大模型·大模型学习
会又不会14 分钟前
Jenkins-Email Extension 插件插件
运维·jenkins
电脑能手1 小时前
[保姆级教程] 解决不同局域网电脑无法SSH的问题
运维·ssh·电脑
tan77º1 小时前
【Linux网络编程】Socket - UDP
linux·服务器·网络·c++·udp
czhc11400756632 小时前
Linux 76 rsync
linux·运维·python
szxinmai主板定制专家2 小时前
【精密测量】基于ARM+FPGA的多路光栅信号采集方案
服务器·arm开发·人工智能·嵌入式硬件·fpga开发
你不知道我是谁?3 小时前
负载均衡--四层、七层负载均衡的区别
运维·服务器·负载均衡
dyj0953 小时前
【Rancher Server + Kubernets】- Nginx-ingress日志持久化至宿主机
运维·nginx·rancher