IO模型笔记

IO模型笔记

UNIX下的5中IO模型

  • 阻塞IO
  • 非阻塞IO
  • IO复用(select/poll)
  • 信号驱动(SIGIO)
  • 异步IO(POSIX的AIO相关)

一个输入通常包含两个不同的阶段:

  1. 等待数据就绪;
  2. 从 内核 向 进程 复制数据;

阻塞式I/O模型

阻塞式I/O模型

非阻塞I/O模型

非阻塞I/O模型

I/O复用模型

I/O复用模型

信号驱动式I/O模型

信号驱动式I/O模型

异步I/O模型

异步I/O模型

各种I/O模型对比

各种I/O模型对比

以上是操作系统底层实现的逻辑,对于操作系统(或者说C语言的网络编程实现来说)建立一个网络服务端的过程即socket、bind、listen;

通常来说java当中的BIO、NIO、AIO对应第第一个、第二个、以及第三第四个,复用IO本人理解来看,本身是一个阻塞式的IO模型,只是在应用层可以做成非阻塞的程度(通过轮训可用socket槽来实现、类似非阻塞模式通过不断检查来控制)。

posted @ 2020-11-01 22:49  wykCN  阅读(80)  评论(0编辑  收藏  举报