BIO:同步阻塞式IO,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善。
NIO:同步非阻塞式IO,服务器实现模式为一个请求一个线程,即客户端发送的连接请求都会注册到多路复用器上,多路复用器轮询到连接有I/O请求时才启动一个线程进行处理。
BIO (Blocking I/O): 同步阻塞 I/O 模式,数据的读取写入必须阻塞在一个线程内等待其完成。线程回收是随机单个回收,只有当前监视的线程运行完毕后才能回收进线程池
NIO (Non-blocking/New I/O): NIO 是一种同步非阻塞的 I/O 模型,提供了 Channel , Selector,Buffer 等抽象。线程回收是有一个单独的监视线程在轮训回收,有跑完的线程就放回线程池,如果当前监视的线程没有跑完则轮循下一个
AIO (Asynchronous I/O): AIO 是异步非阻塞的 IO 模型