首页 > 其他 > 详细

NIO学习笔记

时间:2015-10-19 15:45:25      阅读:188      评论:0      收藏:0      [点我收藏+]

ByteBuffer 和其他的Buffer,如chatBuffer,DoubleBuffer一样都是Buffer的子类,ByteBuffer只有一个指针position用于处理读写操作,读取的内容为 position和limit之间的内容,ByteBuffer的flip() 方法使position置0,limit设置为position 的位置,capacity是Buffer的上限,也就是申请大小的时候那个参数。一旦分配大小不变。(netty中的ByteBuf中有俩个标记指针,一个是readerindex,另一个是writeindex),compat用于释放已读区域?待验证。


Chanel 是同道,与流的区别主要是Chanel是双向的,而流是单向的。channel同时支持读写。

Selector 是多路复用器, 可以轮询注册在其上的Channel,当被轮询到的Channel处于就绪时可以进行操作,遍历SelectKey可以遍历Channel集合,与传统的IO 服务端客户端模型不同, 用NIO一个线程用于轮询Selector即可完成对多个连接的请求处理,前者一个线程维护一个请求。


    

NIO学习笔记

原文:http://my.oschina.net/u/272065/blog/518849

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!