BIO,NIO,AIO

发布于 2021-05-22  399 次阅读


一,I/O模型的基本概述

在java中IO其实分两大类:
  • 磁盘IO
  • 网络IO
这里我们讲的是网络IO,而非磁盘IO
I/O模型:通俗的说就是什么样的通道进行数据的发送和接收,很大程度上决定了程序通讯的性能
java共支持三种网络编程IO模型:BIO,NIO,AIO
1,java BIO:同步堵塞(传统堵塞型IO),服务器的实现模式为一个连接一个线程,即客户端有请求连接服务端时,服务器就会启动一个线程处理该客户端的请求,如果这个连接不做任何事情就会造成不必要的线程开销
2,Java NIO:同步非阻塞,服务器实现模式为一个线程处理多个请求(连接),即客户端发送连接请求都会注册到一个多路复用器上,多路复用器轮询到连接有I/O请求进行处理(事件驱动多路复用)