C语言 Linux Socket poll 多路复用
发布时间
阅读量:
阅读量
文章结构概述
- 前言
-
一、poll 多路复用的概念解析
-
- poll() 函数的实现方式
-
二、实际编程实现
-
三、程序执行结果展示
-
总结
-
前言
在上一部分中我们已经探讨了 select 多路复用机制,接下来本文将重点介绍 poll 多路复用的相关内容
一、poll 多路复用是什么?
select() 与 poll() 这两个系统调用的核心机制本质上是相同的,只不过 select() 最初是在 BSD UNIX 系统中被引入,而 poll() 则出现在 System V 系统中。poll() 的运作方式与 select() 相似,二者的区别并不显著,均通过轮询的方式对多个描述符进行管理,并依据描述符的状态执行相应的处理操作。然而,poll() 并不像 select() 那样受到最大文件描述符数量的限制(尽管当描述符数量过多时,其性能同样会受到影响)。值得注意的是,poll() 与 select() 均存在一个共同的缺陷:在每次调用过程中,都会将包含大量文件描述符的数组完整地复制到用户态和内核态之间的地址空间中,无论这些描述符是否已经处于就绪状态。这种操作所带来的开销会随着文件描述符数量的增加而呈线性增长。
poll() 函数功能解析
#include
全部评论 (0)
还没有任何评论哟~
