首页 > 编程知识 正文

java面试题jvm调优,io与nio的区别面试题

时间:2023-05-05 00:54:12 阅读:38020 作者:2755

平时我们在日常工作中总是会遇到很多与java相关的内容,但也存在一些问题。 还很难。 特别是去后面面试的话,会遇到更多的难题。 所以,需要事先理解。 一起看看吧。

首先,说明一下NIO的工作原理。

1 .负责通过一个专用线程处理和分发所有IO事件。

2 .事件驱动机制:事件到达时触发。 不是同步监视事件。

3 .线程通信:线程之间通过wait、notify等进行通信。 保证每次上下文切换都有意义。 减少不必要的线程切换。

而且,那个通信模式是怎么实现的呢?

java NIO使用双向通道(而不是单向流(stream ) ),可以注册对通道感兴趣的事件。

4项活动

服务端接收客户端连接事件selectionkey.op_accept(16 )

客户端连接服务端事件selectionkey.op_connect(8) ) )。

阅读事件selectionkey.op_read(1)

写事件selectionkey.op_write(4)

服务端和客户端分别管理着管理通道的对象。 这叫做选择器。 此对象检测一个或多个通道上的事件。 例如,如果在服务端的selector中注册了读取事件,则客户端会在某个时间点向服务端发送数据,调用阻止I/O时读取)方法进行阻止并读取数据,而NIO的服务端则服务端处理线程通过轮询访问selector,如果访问selector时感兴趣的事件到达,则处理这些事件;如果感兴趣的事件没有到达,则处理线程直到感兴趣的事件到达下图:

最后,对AIO的概念进行补充

在Java 7中,NIO得到了进一步的改进。 也就是说,NIO 2引入了异步无阻塞IO方式。 也有很多人被称为异步(AIO )

IO )。 异步IO操作基于事件和回调机制,APP应用操作可以直接返回而不被阻塞,后台处理完成后操作系统可以轻松理解,通知相应线程后续工作。

其实,在面试中你会发现很多主题不在我们日常的理解中。 所以,必须注意积累。 如果你想了解更多关于Java的问题,请关注奇q工具网。

请阅读:

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。