在Unix下有5中IO模型
- 同步阻塞IO
- 同步非阻塞IO
- IO多路复用
- 异步IO
- 信号驱动IO
一个输入操作通常包含两个阶段:
- 等待数据。等待网络中的数据分组到达,数据会被拷贝到内核缓冲区中。
- 获取数据。将数据从内核拷贝到进程。
第一阶段等待数据可以区分是否阻塞,第二阶段获取数据可以区分同步或异步。
根据POSIX对同步IO和异步IO的定义,在上述5种IO模型中,除了异步IO,其他都是同步IO。上述四种同步IO在第二阶段都会被阻塞。
Reference
《UNIX网络编程》
我在这里记录着美好