概念理解
同步与异步
多个任务和事件发生时,一个事件的发生或执行是否会导致整个流程的暂时等待。
阻塞与非阻塞
当请求一个操作时,如果条件不满足,是会一直等待还是返回一个标志信息。
同步 I/O 与异步 I/O
数据拷贝阶段是由用户线程完成还是内核完成(必须要有操作系统的底层支持)。
阻塞 I/O 与非阻塞 I/O
在数据未就绪的情况下,是返回一个标志位还是一直等待。
I/O 模型
阻塞 I/O 模型
非阻塞 I/O 模型
多路复用 I/O 模型
Java NIO 属于这一种,使用 select() 去查询每个通道是否有到达事件,没有事件则阻塞。
信号驱动 I/O 模型
异步 I/O 模型
参考
文档信息
- 本文作者:Shilin Wang
- 本文链接:https://beatlesnull.github.io/wiki/basis-os-io/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)