I/O多路复用,I/O multiplexing

multiplexing

multiplexing一词其实多用于通信领域,为了充分利用通信线路,希望在一个信道中传输多路信号,要想在一个信道中传输多路信号就需要把这多路信号结合为一路,将多路信号组合成一个信号的设备被称为multiplexer,显然接收方接收到这一路组合后的信号后要恢复原先的多路信号,这个设备被称为demultiplexer,如图所示:

所谓I/O多路复用指的是这样一个过程:

  1. 我们拿到了一堆文件描述符(不管是网络相关的、还是磁盘文件相关等等,任何文件描述符都可
    以)
  2. 通过调用某个函数告诉内核:“这个函数你先不要返回,你替我监视着这些描述符,当这堆文件
    描述符中有可以进行I/O读写操作的时候你再返回
  3. 当调用的这个函数返回后我们就能知道哪些文件描述符可以进行I/O操作了。
    那么有哪些函数可以用来进行I/O多路复用呢?

在Linux世界中有这样三种机制可以用来进行I/O多路复用:

  • select
  • poll
  • epoll

本质上select、poll、epoll都是阻塞式I/O,也就是我们常说的同步I/O。

版权声明:
作者:jeristiano
链接:https://www.jeristiano.win/archives/631.html
来源:光合盐
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录