为什么要使用I/O多路复用

假设要求你写一个echo-server服务器,它也能对用户从标准输入键入的交互命令做出响应。在这种情况下,

服务器必须响应两个互相独立的I/O事件:

    1) 网络客户端发起的连接请求

    2) 用户在键盘上键入的命令行

那么问题来了,我们先等待哪个事件呢?没有哪个选择是理想的。如果在accept中等待一个连接请求,我们就不能响应输入的命令。

同样,如果在read中等待一个输入命令,我们就不能响应任何连接请求。

针对这一问题的一个解决办法就是 **I/O多路复用** ( *I/O multiplexing* )技术。
05-11 13:22