NIO学习笔记
博客专区 > younchen 的博客 > 博客详情
NIO学习笔记
younchen 发表于2年前
NIO学习笔记
  • 发表于 2年前
  • 阅读 44
  • 收藏 3
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

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即可完成对多个连接的请求处理,前者一个线程维护一个请求。


    

共有 人打赏支持
粉丝 9
博文 93
码字总数 29970
×
younchen
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: