首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

关于I/O多路复用与线程的了解

2013-07-08 
关于I/O多路复用与线程的理解以下是我对I/O多路复用的理解,请大家看看是否正确。如果有错,请提出来,非常感

关于I/O多路复用与线程的理解
      以下是我对I/O多路复用的理解,请大家看看是否正确。如果有错,请提出来,非常感谢!
      设计并发程序时,采用one event loop per thread的模型,那么I/O多路复用的本质还是单线程。epoll等I/O多路复用模型可以同时监听多个fd,比如同时监听stdin和一个socket。但是,在对多个产生事件的fd进行处理的时候,程序的处理流程依旧是顺序且依次处理发生事件的fd的,这个阶段在本质上依旧是阻塞且同步的。所以,non-blocking IO就可以在这时发挥作用,比如非阻塞的socket,等等。
      在一篇文章中看到,"I/O复用"其实复用的不是IO连接,而是复用线程。在复用线程的基础上,处理多个fd的时候依旧是顺序执行的。这一点该如何理解呢?
[解决办法]
一个线程同时兼顾多个fd,如果这些fd都有事件发生时,这个线程就需要依次顺序处理了

热点排行