在Java的发展过程中,IO演变了多种形式,目的是为了满足实际业务所需,IO即(Input和Output的首字母), 是指最基础的输入和输出
java中支持的网络编程模型IO模式共三种:BIO(Blocking IO)1、NIO(New IO)2、AIO(Asynchronous IO)3
了解同步/异步、阻塞/非阻塞
在IO操作中,IO分为两个阶段
-
数据准备阶段
-
将数据从内核空间复制到用户进程缓冲区(即:用户空间)4阶段
同步和异步
同步:是指用户线程发起I/O请求后需要等待或轮询内核I/O操作完成后,才能继续执行
异步:是指用户线程发起I/O请求后,仍需要继续执行,当内核I/O操作完成后会通知用户线程,或调用用户线程注册的回调函数
阻塞和非阻塞
阻塞:是指I/O操作需要彻底完成后才能返回用户空间
非阻塞:是指I/O操作被调用后立即返回一个状态值,不需要等待I/O操作彻底完成
同步与异步、阻塞与非阻塞图解
要了解什么是IO,避不开网络IO模型,我们一般讨论的网络IO模型都是基于Linux环境。