关于NIO 非阻塞io应用
来源:互联网 发布:校园网络安全教育 编辑:程序博客网 时间:2024/06/16 06:51
Java NIO非堵塞应用通常适用用在I/O读写等方面,我们知道,系统运行的性能瓶颈通常在I/O读写,包括对端口和文件的操作上,过去,在打开一个I/O通道后,read()将一直等待在端口一边读取字节内容,如果没有内容进来,read()也是傻傻的等,这会影响我们程序继续做其他事情,那么改进做法就是开设线程,让线程去等待,但是这样做也是相当耗费资源的。
Java NIO非堵塞技术实际是采取Reactor模式,或者说是Observer模式为我们监察I/O端口,如果有内容进来,会自动通知我们,这样,我们就不必开启多个线程死等,从外界看,实现了流畅的I/O读写,不堵塞了。
NIO 有一个主要的类Selector,这个类似一个观察者,只要我们把需要探知的socketchannel告诉Selector,我们接着做别的事情,当有事件发生时,他会通知我们,传回一组SelectionKey,我们读取这些Key,就会获得我们刚刚注册过的socketchannel,然后,我们从这个Channel中读取数据,放心,包准能够读到,接着我们可以处理这些数据。
Selector内部原理实际是在做一个对所注册的channel的轮询访问,不断的轮询(目前就这一个算法),一旦轮询到一个channel有所注册的事情发生,比如数据来了,他就会站起来报告,交出一把钥匙,让我们通过这把钥匙来读取这个channel的内容。
0 0
- 关于NIO 非阻塞io应用
- 阻塞IO与非阻塞NIO
- NIO阻塞与非阻塞IO
- Java-NIO(七):阻塞IO与非阻塞IO
- java之非阻塞IO(NIO)
- java NIO 及 阻塞和非阻塞IO
- IO阻塞和NIO非阻塞的理解
- Java NIO中的阻塞与非阻塞IO
- 【转载】Java NIO(非阻塞IO) API介绍
- Java NIO(非阻塞IO) API介绍 .
- Java NIO - 非阻塞 IO和复用
- java NIO(non-blocking I/O) 非阻塞式io
- java非阻塞式IO NIO 初步认识
- 阻塞、非阻塞IO
- Socket通信之BIO(同步阻塞IO)、PAIO(伪异步阻塞IO)、NIO(异步非阻塞IO)、AIO(异步非阻塞IO)、netty5之IO
- 关于非阻塞IO函数的学习
- java nio 非阻塞
- java非阻塞nio
- jquery实现iframe自适应高度
- LeetCode OJ平台上的Climbing Stairs题目用java迭代解决
- android 后台长时间执行周期性定时任务 解决方案收集
- 股市二十年记忆【一】
- Java之BigInteger
- 关于NIO 非阻塞io应用
- java 起名规范
- oracle 10g 预安装脚本
- 内连接和外连接的区别
- 贾樟柯 《天注定》 观后感
- [c.y.j]js练习表格隔行 添加
- 一个很简短的屏蔽(不是卸载)低级键盘钩子的程序及解释
- 我的Android进阶之旅------>经典的大牛博客推荐(排名不分先后)!!
- 图览各编程语言中敲击最多的键