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. 高并发,百万级别
相关推荐
christine-rr4 小时前
linux常用命令(4)——压缩命令
linux·服务器·redis
東雪蓮☆4 小时前
深入理解 LVS-DR 模式与 Keepalived 高可用集群
linux·运维·服务器·lvs
qq_264220894 小时前
LVS负载均衡群集和LVS+Keepalived群集
运维·负载均衡·lvs
乌萨奇也要立志学C++5 小时前
【Linux】进程概念(二):进程查看与 fork 初探
linux·运维·服务器
雨落Liy5 小时前
Nginx 从入门到进阶:反向代理、负载均衡与高性能实战指南
运维·nginx·负载均衡
Yyyy4826 小时前
Nginx负载均衡集群实验步骤
运维·nginx·负载均衡
绿箭柠檬茶6 小时前
Ubuntu 服务器配置转发网络访问
服务器·网络·ubuntu
獭.獭.7 小时前
Linux -- 信号【上】
linux·运维·服务器
hashiqimiya7 小时前
centos配置环境变量jdk
linux·运维·centos
路由侠内网穿透8 小时前
本地部署 GPS 跟踪系统 Traccar 并实现外部访问
运维·服务器·网络·windows·tcp/ip