当前位置: 首页 > news >正文

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. 高并发,百万级别

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【OneAPI】中国行政区域省市县编码查询
  • 集成学习:融合多个模型
  • 负载均衡之HAProxy超全内容!!!
  • SDL 与 OpenGL 的关系
  • Vue3学习 Day01
  • 张量补充 2 (补充ing)
  • WPF使用LibVLC.WPF进行本地视频文件播放
  • 【CTF | WEB】003、攻防世界WEB题目之xff_referer
  • 设计模式-享元模式
  • HTTP 之 头部信息(二)
  • Vue3+vite+ts 项目使用mockjs
  • 【C++ 面试 - 基础题】每日 3 题(十六)
  • 质量对中国开发商提升游戏品牌信誉和信任度的影响
  • Java设计模式之中介者模式
  • 【SpringBoot】SpringBoot框架的整体环境搭建和使用(整合Mybatis,Druid,Junit4,PageHelper,logback等)
  • [NodeJS] 关于Buffer
  • 【翻译】Mashape是如何管理15000个API和微服务的(三)
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • codis proxy处理流程
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • JavaScript-Array类型
  • JavaScript异步流程控制的前世今生
  • Js基础——数据类型之Null和Undefined
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • Markdown 语法简单说明
  • Nacos系列:Nacos的Java SDK使用
  • Spring Boot MyBatis配置多种数据库
  • Spring Cloud中负载均衡器概览
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 关于for循环的简单归纳
  • 基于 Babel 的 npm 包最小化设置
  • 如何优雅地使用 Sublime Text
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 思维导图—你不知道的JavaScript中卷
  • 学习Vue.js的五个小例子
  • ​Java基础复习笔记 第16章:网络编程
  • # linux 中使用 visudo 命令,怎么保存退出?
  • #DBA杂记1
  • (2)STL算法之元素计数
  • (done) 两个矩阵 “相似” 是什么意思?
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (不用互三)AI绘画:科技赋能艺术的崭新时代
  • (二)构建dubbo分布式平台-平台功能导图
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • .NET CF命令行调试器MDbg入门(一)
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET Standard 的管理策略
  • .NET 指南:抽象化实现的基类
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • .net6+aspose.words导出word并转pdf
  • .net快速开发框架源码分享
  • /etc/fstab和/etc/mtab的区别