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

socket-IO复用技术

五个I/O模型

1、阻塞I/O

2、非阻塞I/O

3、I/O复用(select和poll)

4、信号驱动I/O

5、异步I/O

I/O复用

        是一种在单线程或单进程环境下,同时监听多个 I/O 事件的技术。它允许程序高效地处理多个输入输出流(如网络套接字、文件描述符等),避免了为每个 I/O 流创建一个独立的线程或进程,从而减少了系统资源的开销。

常用技术

select

        工作方式select 是最早的 I/O 复用机制之一。它使用一个 fd_set 数据结构来表示文件描述符集合,通过 select 函数来监控这些文件描述符的可读、可写和异常状态。当有事件发生时,select 函数会返回,并修改 fd_set 集合,指示哪些文件描述符有事件发生。

poll

        工作方式poll 与 select 类似,但它使用一个 pollfd 结构体数组来表示文件描述符集合,并且没有文件描述符数量的限制(select 有最大文件描述符数量的限制)。poll 函数会监控这些文件描述符的状态变化,并在有事件发生时返回。

epoll

        工作方式epoll 是 Linux 特有的 I/O 复用机制,它通过事件驱动的方式来工作,使用红黑树来管理文件描述符集合,使用链表来管理就绪的文件描述符。epoll 有更高的效率,特别是在处理大量并发连接时,因为它只需要遍历就绪的文件描述符,而不需要像 select 和 poll 那样遍历整个文件描述符集合。

epoll函数

参考:epoll函数-CSDN博客

相关文章:

  • 治理和管理的区别
  • 程序代码篇---ESP32云开发
  • 《算法精解:C语言描述》note-1 数据结构和算法简介
  • 存算一体架构下的新型AI加速范式:从Samsung HBM-PIM看近内存计算趋势
  • 统计模式识别理论与方法
  • 透视Linux内核:深度剖析Socket机制的本质
  • 使用MGeo模型高精度实现文本中地址识别
  • C++11新特性_自动类型推导
  • GPU虚拟化实现(七)
  • *(解引用运算符)与 ++(自增运算符)的优先级
  • 编写教育网站后端页面笔记
  • Dinero.js - 免费开源的 JavaScript 货币处理工具库,完美解决 JS 浮点数精度丢失问题
  • vue 常见ui库对比(element、ant、antV等)
  • C标准库(libc)接口及示例解析
  • 免费实用的图像处理工具箱​
  • 神经网络入门
  • 前端八股 7
  • 7.0/Q1,GBD数据库最新文章解读
  • 2025五一杯数学建模C题:社交媒体平台用户分析问题;思路分析+模型代码
  • 加密解密记录
  • 美国证实加拿大及墨西哥汽车零部件免关税
  • 北部艳阳高照、南部下冰雹,五一长假首日上海天气很“热闹”
  • 专家分析丨乌美签署矿产协议,展现美外交困境下的无奈
  • “五一”看什么?这里有一份申城视听指南
  • 澎湃读报丨解放日报8个版聚焦:牢记嘱托,砥砺奋进
  • 《探秘海昏侯国》数字沉浸特展亮相首届江西文化旅游产业博览交易会