BIO和NIO的区别
BIO:
在JDK1.4之前,我们建立网络的时候采用BIO的方式,需要在服务端启动一个ServerSocket,在客户端启动一个Socket对服务端进行通信。默认情况下服务端需要对每个连接都建立一个线程来响应请求。客户端发送请求后,先咨询服务端是否有线程响应,如果没有就会一直等待或者遭到拒绝。如果有的话,客户端线程会等待请求结束后才继续执行。
NIO:
当一个连接创建后,不需要对应一个线程,这个连接会被注册到多路复用器上面,所以所有的连接只需要一个线程就可以搞定,当这个线程中的多路复用器进行轮询的时候,发现连接上有请求的话,才开启一个线程进行处理。