I/O 多路复用机制讲解

你全力以赴的极限,搞不好只是别人的起点。

 

什么是多路复用?

我们一般说的I/O是指的网络I/O,多路是指多路指多个TCP连接(即 socket 或者 channel),复用指复用一个或几个线程。

就是指一个或一组线程处理多个 TCP 连接。最大优势是减少系统开销小,不必创建过多的进程/线程,也不必维护这些进程/线程。IO 多路复用的三种实现方式:select、poll、epoll。

 

io多路复用技术有哪些种类:

select:

  操作系统提供的系统调用函数,用于等待文件描述词(普通文件、终端、伪终端、管道、FIFO、套接字及其他类型的字符型)状态的改变。 是一个轮循函数,循环询问文件节点,可设置超时时间,超时时间到了就跳过代码继续往下执行。

poll:

  同select原理差不多,可以理解为改良版的select。它是对多个文件描述符进行轮询,如果某个文件描述符处于可读/可写状态,或者发生错误/异常,那么就立即返回。

epoll:

  使用基于事件驱动的方式代替了顺序扫描,且fd的个数不受限制,因此性能更高。当fd就绪时,会立即回调函数。

 

posted @ 2022-07-04 09:07  方达达  阅读(11)  评论(0编辑  收藏  举报