IO、NIO和AIO的区别

IO和NIO的区别:其本质就是阻塞和非阻塞的区别。

阻塞概念:应用程序在获取网络数据的时候,如果网络传输数据很慢,那么久一直等着,知道传输完毕为止。
非阻塞概念:应用程序直接可以获取已经准备就绪好的数据,无需等待。(从操作系统缓冲区中直接读取已经缓冲完毕的数据,不用阻塞等待数据缓冲完毕,可以在这段时间中做其他事)

同步和异步的区别:

同步:应用程序会直接参与IO读写操作哦,并且应用程序会直接阻塞到某个方法上,知道数据准备就绪;或者采用轮询的策略实时检查数据的就绪状态,如果就绪则获取数据。
异步:所有的IO读写交给操作系统处理,于应用程序没有直接关系,程序不需要关心IO读写,当操作系统完成了IO读写时,会给应用程序发送通知,应用程序直接拿走数据即可。

同步说的是server服务端的执行方式(面向操作系统,异步:操作系统已经完成加载的过程)
阻塞说的是具体技术,接收数据的方式、状态(io、nio)


AIO:
在NIO基础上引入了异步通道的概念,病提供了异步文件异步套接字通道的实现。AIO不需要通过多路复用器对注册的通道进行轮询操作即可实现异步读写,从而简化了NIO变成模型。

你可能感兴趣的:(IO、NIO和AIO的区别)