南充网站建设工作室,成都锦江建设局网站,给教育类做网站,保险网站导航一、什么是NIO 1、Java NIO全称java non-blocking IO#xff0c; 是指JDK提供的新API。从JDK1.4开始#xff0c;Java提供了一系列改进的输入/输出的新特性#xff0c;被统称为NIO(即New IO)#xff0c;是同步非阻塞的 2、NIO有三大核心部分: Channel(通道)#xff0c; Buf… 一、什么是NIO 1、Java NIO全称java non-blocking IO 是指JDK提供的新API。从JDK1.4开始Java提供了一系列改进的输入/输出的新特性被统称为NIO(即New IO)是同步非阻塞的 2、NIO有三大核心部分: Channel(通道) Buffer(缓冲区),Selector(选择器) 3、NIO是面向缓冲区或者面向块编程的。数据读取到一个它稍后处理的缓冲区需要时可在缓冲区中前后移动这就增加了处理过程中的灵活性使用它可以提供非阻塞式的高伸缩性网络。 二、NIO 与BIO 模型对比 BIO 是同步阻塞IO,服务器的模式是一个线程处理一个请求当无响应时会阻塞线程 NIO 同步非阻塞IO,会有一个Selector管理多个线程当有事件发生后进行处理、不会发生阻塞 三、NIO 与BIO的差异 1、BIO 以流的方式处理数据,而NIO以块的方式处理数据,块I/O 的效率比流I/O高很多 2、BIO 是阻塞的NIO则是非阻塞的 3、BIO基 于字节流和字符流进行操作而NIO 基于Channel(通道)和Buffer(缓冲区)进行操作数据总是从通道读取到缓冲区中或者从缓冲区写入到通道中。Selector(选择器)用于监听多个通道的事件(比如:连接请求数据到达等)因此使用单个线程就可以监听多个客户端通道