IO多路复用机制带来了
技术原理概述IO多路复用技术是为了解决进程或线程阻塞到某个I/O系统调用而出现的技术,使进程不阻塞于某个特定的I/O系统调用。
在IO多路复用技术描述前,讲解下同步,异步,阻塞,非阻塞的概念。
linux网络IO中涉及到的模型如下:
1)阻塞式IO
2)非阻塞式IO
3)IO多路复用
4)信号驱动IO
5)异步IO
在学习IO模型的时候,我们必须明确一个概念,处理IO的时候,阻塞和非阻塞都是同步的IO。只有使用了特殊的API才是异步IO,例如Linux网络中的AIO。
同步(select/poll/epoll)
异步(Linux(AIO),Windows(IOCP))
再看下POSIX对同步和异步这两个术语的定义:
同步IO操作:导致请求进程阻塞,直到IO操作完成
异步IO操作:不导致请求进程阻塞
通俗的理解就是同步和异步
同步:当执行系统调用read时,需要用户等待内核完成从内核缓冲区到用户缓冲区的数据拷贝。
异步:当执行异步IO操作例如aio_read时,用户不需要等待,只需要接收内核完成操作的通知,由内核来完成数据的读取。
在知晓阻塞和非阻塞都是同步IO



