IO模型
IO模型有阻塞IO,非阻塞IO,多路复用IO,信号驱动IO以及异步IO五种IO模型。
Java支持BIO(同步阻塞IO),NIO(同步非阻塞),多路复用IO,信号驱动IO和异步IO。
IO实现模式
BIO:
同步阻塞IO,服务器实现模式为每一个连接会占用一个线程,线程数量开销大,线程切换CPU开销大。
应用场景: 适用于连接数目比较小而且架构固定,无高并发等小型应用程序。
NIO:
同步非阻塞IO,服务器实现一个线程处理多个请求,客户端发送的请求会注册到多路复用器上,多路复用器
轮询到连接有IO请求就进行处理。
应用场景: NIO适用于连接数目多连接时间比较短的架构应用。
AIO:
异步非阻塞IO,服务器实现一个有效请求一个线程,客户端的IO请求都是由操作系统先完成了再通知服务器
应用去启动线程进行处理,一般适用于连接数较多而且连接时间较长的应用。