IO面试题
题目
讲讲 NIO 和 BIO 的区别。
答案
BIO(同步阻塞)
- BIO 是传统的 IO 模式,客户端向服务器端发起请求的时候,如果服务端没有处理完成,就会一直等待,等服务端处理完成之后会将响应返回给客户端。
- 每次请求都会生成一个线程去处理。
- BIO 是面向流的。
NIO(同步非阻塞)
- NIO 向服务端发起请求,如果没有响应会立即返回,然后重新请求,直到获取到数据为止。
- NIO 创建连接后这个连接会被注册到多路复用器上面。通过 Selector 来获取数据。
- NIO 是面向缓冲区的。