https://blog.csdn.net/weixin_43732955/article/details/116426372
一、什么是 NIO
- Java NIO全称java non-blocking IO, 是指JDK提供的新API。从JDK1.4开始,Java提供了一系列改进的输入/输出的新特性,被统称为NIO(即New IO),是同步非阻塞的
- NIO 有三大核心部分:Channel(通道),Buffer(缓冲区),Selector(选择器)
- NIO 是面向缓冲区,或者面向块编程的。数据读取到一个它稍后处理的一个缓冲区,需要时可在缓冲区中前后移动,这就增加了处理过程中的灵活性,使用它可以提供非阻塞式的高伸缩性网络。
二、NIO 与 BIO 模型对比
BIO 是同步阻塞 IO,服务器的模式是一个线程处理一个请求,当无响应时,会阻塞线程
NIO 同步非阻塞 IO,会有一个 Selector 管理多个线程,当有事件发生后,进行处理、不会发生阻塞。

Server