selec和poll的区别
selec和poll的区别
select:
- 文件描述符数量限制:
select
通常有文件描述符数量的限制,这取决于系统和配置,例如在Linux中默认限制为1024。 - 效率:
select
在处理大量文件描述符时效率较低,因为它需要复制整个文件描述符集合到内核空间。 - 返回值:
select
返回就绪的文件描述符数量,需要程序遍历整个文件描述符集合来确定哪些文件描述符就绪。 - 超时:
select
使用timeval
结构体来指定超时时间,如果超时则返回 0。
poll:
- 文件描述符数量限制:
poll
没有对文件描述符数量的硬性限制,理论上可以处理更多的文件描述符。 - 效率:
poll
通过使用一个单独的结构体数组来指定文件描述符,避免了select
中的复制操作,提高了效率。 - 返回值:
poll
返回就绪的文件描述符数量,同样需要程序遍历整个文件描述符集合来确定哪些文件描述符就绪。 - 超时:
poll
使用一个单独的参数来指定超时时间,如果超时则返回 0。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步