当前位置: 首页 > 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博客

http://www.xdnf.cn/news/249841.html

相关文章:

  • 米酒的功能和优缺点
  • 范围for 和 万能引用
  • 【业务领域】电脑网卡是主板还是cpu(主板的网卡是什么意思)
  • 神经网络入门
  • 题解:CF1133E K Balanced Teams
  • 专题二十一:无线局域网——WLAN
  • VAO与VBO的相关操作
  • 【软件技能】Verdi使用技巧总结
  • TactileNet 利用 AI 生成触觉图形填补视障人士无障碍鸿沟
  • 文章记单词 | 第56篇(六级)
  • 【信息系统项目管理师-论文真题】2024上半年(第二批)论文详解(包括解题思路和写作要点)
  • 交我算使用保姆教程:在计算中心利用singularity容器训练深度学习模型
  • VLM-R1 训练:max_anyres_num 参数与多图处理机制解析
  • Origin绘图操作:图中迷你图绘制
  • 【c语言】字符函数和字符串函数
  • PB的框架advgui反编译后控件无法绘制的处理(即导入pbx的操作步骤)
  • 编程题python常用技巧-持续
  • 【java WEB】恢复补充说明
  • 基于hr2管理系统的学习
  • BG开发者日志501:故事模式的思路2
  • 2025五一杯数学建模B题:矿山数据处理问题,详细问题分析,思路模型
  • 有没有贴吧备份的网站,备份贴吧网站数据的方法
  • 【c++】【STL】queue详解
  • 【业务领域】PCIE协议理解
  • 三维装配可视化界面开发笔记
  • 2024年US SCI1区TOP:自适应变异麻雀搜索算法AMSSA+地铁隧道变形预测,深度解析+性能实测
  • 小刚说C语言刷题—1602总分和平均分
  • xml 和 yaml 的区别
  • 冒泡排序:从入门到入土(不是)的奇妙旅程
  • 文章记单词 | 第55篇(六级)