NIO介绍

Java NIO 全称java non-blocking IO ,是指 JDK 提供的新 API。从 JDK1.4 开始,Java 提供了一系列改进的输入/输出的新特性,被统称为 NIO(即 New IO),是同步非阻塞的.

NIO有三大核心部分:Channel(通道),Buffer(缓冲区), Selector(选择器)

NIO是面向缓冲区编程的。数据读取到一个缓冲区中,需要时可在缓冲区中前后移动,这就增加了处理过程中的灵活性,使用它可以提供非阻塞式的高伸缩性网络,相比于BIO的流,缓冲区的效率要更高

Java NIO 的非阻塞模式,使一个线程从某通道发送请求或者读取数据,但是它仅能得到目前可用的数据,如果目前没有数据可用时,就什么都不会获取,而不是保持线程阻塞。而BIO即使没有数据可用,线程依然会阻塞,造成资源的浪费

NIO三大核心原理示意图

1:客户端发起连接请求

2:服务端发现这是一个连接请求,会生成一个对应的SocketChannel,然后将该SocketChannle注册到Selector选择器上

3:Selector会不断的轮询已经注册了的Channle,如果有IO事件(有客户端发起了读写请求),就会根据不同的事件(read/write)类型做对应的处理

3:三大核心之缓冲区Buffer

3.

参考文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: