什么是BIO
BIO是同步阻塞IO,当客户端向服务端请求通信时,服务端会建立一个ServerSocket来与客户端进行阻塞式的通信。
缺点 : 每次一个客户端接入都会使ServerSocket建立一个新的线程,当有大量客户端来请求时,会使服务端过载。
什么是NIO
NIO是一种同步非阻塞IO
通过selector监听多个channel来做到用一个线程来处理多个操作的
一个selector线程不断的轮询所有的socket连接,发现有事件了就通知你,然后你就启动一个线程处理一个请求即可,这个过程的话就是非阻塞的。但是这个处理的过程中,你还是要先读取数据,处理,再返回的,这是个同步的过程。
什么是AIO
异步非阻塞IO
将数据写入的缓冲区后,就不去管它,剩下的去交给操作系统去完成。
发起一个请求之后,剩下的事情就是交给了操作系统,当读写完成后, 操作系统会来回调接口, 提醒操作完成, 在这期间不需要等待, 也不需要去轮询判断操作系统完成的状态