嵌入式八股文,select、poll、epoll
首先,这三个函数都是针对I/O多路复用的
I/O 多路复用技术允许单个线程或进程同时管理多个 I/O 操作(如文件描述符或网络连接)。
使用I/O 多路复用的目的之一就是为了解决高并发;
(1)减少资源消耗
-
多路复用技术允许一个线程或进程同时处理多个 I/O 操作,而不需要为每个 I/O 操作分配一个独立的线程或进程。
-
这大大减少了系统资源的消耗(如内存和上下文切换开销)。
(2)提高效率
-
多路复用机制(如
select
、poll
和epoll
)通过高效的事件通知机制,允许程序只关注那些已经准备好进行 I/O 操作的文件描述符。 -
这避免了程序浪费时间在未准备好的 I/O 上,从而提高了整体效率。
(3)支持大规模并发
-
多路复用技术能够高效地管理大量文件描述符,支持高并发场景。
-
例如,
epoll
可以轻松处理数万个并发连接,而传统的线程模型可能在几百个连接时就显得力不从心。
另外epoll没有跨平台性,属于Linux特有