首页 > 试题广场 >

下面选项中关于 Linux 中的 IO 多路复用机制,说法

[不定项选择题]
下面选项中关于 Linux 中的 I/O 多路复用机制,说法正确的是()
  • select 可以同时监视多个文件描述符,一旦其中一个文件描述符有数据可读或可写它就会返回,从而告知应用程序哪些文件描述符可以进行读写操作
  • poll 功能与 select 类似,但采用的是链表结构存储等待事件的文件描述符,poll 和 select 支持的最大文件描述符数默认都为 1024
  • epoll 在任何情况下效率都比 select 和 poll 高,所以目前开发时只会选用 epoll 来实现 I/O 多路复用
  • select 和 poll 只能工作在水平相对较低的水平触发模式(LT),epoll 不仅可以水平触发(LT),也可以在边缘触发模式下进行(ET)
select单个进程所能打开的最大连接数由FD_SETSIZE宏定义,32位机默认1024个,64位默认2048。poll使用链表,最大监控65535个fd。
发表于 2023-09-20 10:17:41 回复(0)
答案:A***项:select函数能够同时监听多个文件描述符的读写等事件,当被监听的文件描述符中存在就绪(可读或可写等)的情况时,select会返回,并且通过参数告知应用程序哪些文件描述符可以进行读写操作 ,该选项正确。 - B选项:poll和select类似,不过poll采用链表存储文件描述符这点正确,但select默认支持的最大文件描述符数是1024,poll理论上没有这个限制,只受限于系统资源,所以该选项错误。 - C选项:epoll并非在任何情况下效率都比select和poll高。epoll在处理大量并发连接且活跃连接较少的场景优势明显,但在连接数少且活动连接频繁的场景,select和poll的开销可能更小,所以开发时不会只选用epoll,该选项错误。 - D选项:select和poll仅支持水平触发模式(LT),而epoll既支持水平触发(LT),也支持边缘触发模式(ET),该选项正确。
发表于 2025-03-14 15:42:16 回复(0)