
当前位置:首页 > 图灵资讯 > java面试题> 金三银四精选面试题-NIO的原理,包括哪几个组件?
金三银四精选面试题-NIO的原理,包括哪几个组件?
发布时间:2023-11-16 09:46:36
NIO的原理,包括哪几个组件?
NIO(Non-blocking I/O,在Java领域,也称为New I/O),是一种同步非阻塞的I/O模型,也是I/O多路复用的基础,已经被越来越多地应用到大型应用服务器,成为解决高并发与大量连接、I/O处理问题的有效方式。
- NIO 有三大核心部分:Channel(通道)、Buffer(缓冲区)、Selector(选择器) 。
- NIO 是面向缓冲区/块编程的。数据读取到一个它稍后处理的缓冲区,需要时可在缓冲区中前后移动,这就增加了处理过程中的灵活性,使用它可以提供非阻塞式的高伸缩性网络。
- Java NIO 的非阻塞模式,使一个线程从某通道发送请求或者读取数据,但是它仅能得到目前可用的数据,如果目前没有数据可用时,就什么都不会获取,而不是保持线程阻塞,所以直至数据变的可以读取之前,该线程可以继续做其他的事情。非阻塞写也是如此,一个线程请求写入一些数据到某通道,但不需要等待它完全写入,这个线程同时可以去做别的事情。
- 通俗理解:NIO 是可以做到用一个线程来处理多个操作的。假设有 10000 个请求过来,根据实际情况,可以分配 50 或者 100 个线程来处理。不像之前的阻塞 IO 那样,非得分配 10000 个。
- HTTP 2.0 使用了多路复用的技术,做到同一个连接并发处理多个请求,而且并发请求的数量比 HTTP 1.1 大了好几个数量级。

最新资讯
查看更多-
1
金三银四精选面试题-NIO的原理,包括哪几个组件?
-
2
金三银四精选面试题-线程加锁有哪些方式?synchronized和lock的区别?
-
3
金三银四精选面试题-内存溢出一般发生在哪个区?永久代会不会导致内存溢出?
-
4
金三银四精选面试题-CAS是一种什么样的同步机制?
-
5
金三银四精选面试题-你们线上应用的JVM参数有哪些?
-
6
金三银四精选面试题-简单说说你了解的类加载器,可以打破双亲委派么,怎么打破。
-
7
金三银四精选面试题-在自己的代码中,如果创建一个java.lang.String类,这个类是否可以被类加载器加载?为什么。
-
8
金三银四精选面试题-Error和Exception的区别,CheckedException,RuntimeException的区别
-
9
金三银四精选面试题-JAVA8的ConcurrentHashMap为什么放弃了分段锁,有什么问题吗,如果你来设计,你如何设计?
-
10
金三银四精选面试题-Java中的HashMap内部是如何工作的