java nio的实现原理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java nio的实现原理相关的知识,希望对你有一定的参考价值。

1 什么是java nio

java nio就是java非阻塞io。

2 什么是channel

channel是到打开的文件的连接,只要是支持读写操作的实体都可以称为文件,文件可以是硬件设备、文件和网络套接字等。

3 多路复用非阻塞IO的实现原理

3.1 Selector、selection keys和selectable channels一起来实现多路复用非阻塞IO。

3.2 什么是多路复用

多路指的是多个channel、复用指的是多个channel复用一个线程来进行数据的读写。

3.3 什么非阻塞IO

指的是被复用的线程是不会阻塞的,只要有chanel有数据,它就一直在工作,除非所有的路都没有数据。

3.4 Selector的背后的实现原理

4 noi buffers

为什么要弄这么多的nio buffer?nio buffer有什么用?

在进行标准io的时候因为只有一个chanel在用这个thread,因此不需要buffer,但是多个chanel复用的话,就会存在等待的chanel,这样的话,有一个buffer缓存一下,处理上会更加方便。

 

以上是关于java nio的实现原理的主要内容,如果未能解决你的问题,请参考以下文章

Java NIO三组件——Selecotr/Channel实现原理解析

Java NIO三件套之Buffer实现原理解析

Java NIO三件套之Buffer实现原理解析

Java网络编程和NIO详解7:浅谈 Linux 中NIO Selector 的实现原理

Day786.NIO的优化实现原理 -Java 性能调优实战

Java NIO原理图文分析及代码实现