neilhappy 发表于 2013-05-03 12:11

关于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的时候依旧是顺序执行的。这一点该如何理解呢?

linux_c_py_php 发表于 2013-05-03 12:54

看UNP吧, 问了也白问, 只有自己能教会自己.

neilhappy 发表于 2013-05-04 08:45

回复 2# linux_c_py_php
我继续看UNP。

   
页: [1]
查看完整版本: 关于I/O多路复用与线程的理解