面试题答案
一键面试- 相同点:
- 文件描述符集合处理方式:select和poll都通过特定的数据结构来管理文件描述符集合。select使用fd_set结构体,将文件描述符以位掩码的形式存储在该结构体中,通过对这些位的操作来管理文件描述符集合。poll使用pollfd结构体数组,每个结构体包含一个文件描述符及其相关的事件和就绪标志等信息,同样可以管理一组文件描述符。
- 监听原理:两者都是基于轮询的方式来检查文件描述符是否就绪。即每次调用select或poll时,内核都会遍历所管理的文件描述符集合,检查每个文件描述符对应的设备是否有事件发生(如可读、可写、异常等),以确定哪些文件描述符处于就绪状态。
- 应用场景:在处理I/O多路复用场景下,select和poll机制都可用于监控多个文件描述符,使得程序能在多个文件描述符上等待事件发生,而无需为每个文件描述符创建单独的线程或进程,从而提高了程序的效率和资源利用率。