java nio 高级
来源:互联网 发布:淘宝充值软件利润 编辑:程序博客网 时间:2024/06/13 22:30
非阻塞io:传统的读写会发生阻塞,server/client每个请求产生一个线程,导致线程数量增大
一般采用线程池模型,并且会限制线程池的大小。
非阻塞io采用reactor模式,io调用不会被阻塞,相反会注册感兴趣的特定io事件。(可读数据到达,新的连接建立)
发生特定事件,系统通知。
非阻塞io核心对象是selector,用来注册io事件并且通知事件发生。
当有事件发生时,从selector获取selectorkey。从selectorkey中找出事件和事件发生具体的selectableChannel。
获取客户端发送过来的数据。
二。使用nio编写服务器程序,步骤如下:
向selector对象注册感兴趣的事件,从selector获取感兴趣的事件,根据不同的事件进行相应的处理。
创建serverSocketChannel对象,调用configuringblocking方法,配置为非阻塞模式,向selector注册事件,从selector获取感兴趣的事件
内部循环模式:调用select方法,直到有一个事件发生,调用selectKey方法获取发生事件的selectionkey,在使用迭代器进行循环处理
三。java io和nio区别
阻塞io产生大量线程,带来频繁的上下文切换。
nio:有一个专门的线程处理io分发,事件驱动,事件到时触发不是同步监视。
java nio采用双向通道进行数据传输,而不是单向的流。
0 0
- java nio 高级
- Java高级编程-NIO
- Java语言高级--NIO入门
- 【Java高级】Java中NIO非阻塞socket通信
- Java高级篇(三九)------BIO、NIO、AIO(NIO2)区别
- Java NIO: NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- NIO--JAVA NIO 入门
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- Java NIO:NIO概述
- USACO 2.3 Money Systems (DP 动态规划 + 空间优化)
- 深入理解javascript原型链
- leetcode 16 3Sum Closet
- 安卓控件使用系列24:Gallery画廊控件的使用方法
- HighCharts坐标轴Y轴倒过来画图
- java nio 高级
- 组合数与错排数求解方法探析
- HighCharts设置多个Y轴 Y轴位置
- 非静态成员引用必须与特定对象相对
- (lamphc0)配置服务器及服务器端的开发环境=>长期更新
- Java的类引用的思索
- java反射机制
- Gradle project sync failed. Please fix your project and try again
- MSM8974 fastboot烧写软件