让每一名学员高薪就业
返回列表 发新帖

JavaNIO 原理分析

[复制链接]

84

主题

355

帖子

2399

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2399

版主论坛荣誉内测

发表于 2018-4-11 18:06:17  | 显示全部楼层 | 阅读模式
1. 区分Java IO JavaNIO
              示例图①                                      示例图
      图片1.png    图片2.png
示例图:传统IO
①首先应用程序和磁盘文件之间需要建立连接
②数据的读写是面向数据流动的,所以我们说IO流式面向流的
③数据流动是单向的,例如输入需要建立管道,输出也需要建立管道
示例图java NIO:数据读写
①通道可以看成是铁路,而磁盘及应用程序可以看成是两地
②通道的作用仅仅用于连接,数据的读写并非在通道中操作
③数据是写入到缓冲区,或者从缓冲区读出,缓冲区在两地运送数据:所以NIO面向缓冲
2. 了解JavaNIO的原理[通过读写操作的步骤
      图片3.png
JavaNIO中的几个核心
通道:Chennel:通道客户端和服务端建立链接
缓冲区:Buffer:向缓冲区写入数据,或者读取数据,
选择器:SelectorSelector允许单线程处理多个 Channel
具体了解JavaNIO数据读写操作的过程是如何进行的
第一步:ClientServer建立通道Chennel【数据传输建立链接】
第二步:将通道Chennel注册到选择器Selector【作用监测通道是否发生读写事件】
第三步:创建缓冲区Buffer【用来写入数据或者读取数据】
第四步:通过通道将数据写入到缓冲区Buffer【发生读写事件】
第五步:发生读写事件的通道,会被选择器监测,得到读写事件SelectionKey【获得读写事件】
第六步:通过读写事件SelectionKey得到发生读写事件的通道【获得的通道进行数据的或者写操作】

感谢源码时代教学讲师提供此文章!
本文为原创文章,转载请注明出处!



“尔康,你现在幸福吗?”“紫薇,你忘了?我一直就姓福啊。”
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

最新活动

联系我们

Java培训  |   PHP培训  |   UI培训  |   H5培训  |   Python培训  |   大数据培训  |   如何报名  |   视频下载
快速回复 返回顶部 返回列表