Java的I/O演进之路
I/O模型基本说明
I/O模型:就是用什么样的通道或者说是通信模型和架构进行数据传输和接收,很大程度上决定了程序通信的性能,Java共支持三种网络编程的I/O模型:BIO、NIO、AIO。
实际通信需求下,要根据不同的业务场景和性能需求决定不同的I/O模型。
I/O模型
BIO
同步阻塞式,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务端就需要启动一个进程进行处理,如果这个连接不做任何事情会造成不必要的线程开销。
NIO
同步非阻塞式,服务器实现模式为一个线程处理多个请求,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求就进行处理。
AIO
异步非阻塞,服务器实现模式一个有效请求一个线程,客户端的I/O请求都是由OS先完成了再通知服务器应用去启动线程进行处理,一般适用于连接数较多且连接数时间较长的应用。