BIO:同步阻塞式IO。
NIO:同步非阻塞IO,它是JDK1.4中提出的一套新的IO机制,区别与传统的BIO(Blocking IO)的同步阻塞工作方式。
传统服务器结构,针对于每一个客户端都需要在服务器端创建对应线程来处理,一个客户端一个线程,而线程开辟运行是非常耗费资源的,并且服务器所能支持的最大并发线程数量是非常有限的,所以当高并发到来时,服务器一次创建过多线程,会存在性能瓶颈,甚至宕机。所以想到用少量的线程同时处理多个客户端的连接。
然而,在传统BIO中ACCEPT、CONNECT、READ、WRITE 方法会产生阻塞, 一旦阻塞住线程,该线程被挂起后就没有机会为其它客户端服务,所无法实现少量线程处理多个客户端。为了解决这些问题 ,NIO技术出现了。
BIO:面向流操作字节字符,具有方向性,同步阻塞式IO。
NIO:面向通道操作缓冲区,可以双向传输数据,同步非阻塞式IO。