首页 > Web开发 > 详细

netty数据缓冲区与nio缓冲区的区别

时间:2019-12-24 10:45:47      阅读:86      评论:0      收藏:0      [点我收藏+]

nio中ByteBuffer和netty中的ByteBuf相比确实后者更加的好用:

(1)ByteBuf可以在用户使用数据区空间不足的情况下以2的指数倍扩容,相比ByteBuffer的char数组是final修饰的,一旦需要扩容只能人为手动干预,并且只能重新申请数组并copy才可以。

(2)ByteBuf有readIndex和writeIndex两个概念,从而把数据区分为3段,一段为已经都去过的可丢弃的数据区discardReadArea(从0位置到readIndex位置);一段为可读取的区域readArea(从readIndex位置到writeIndex位置);最后一段是可写的数据区writeArea(从writeIndex位置到capacity位置),相比ByteBuffer在数据区只有position和limit配合使用更加灵活。

(3)netty的ByteBuf有三种容器,除了堆内存储,堆外存储以外。还添加了一种容器,这种容器可以将堆内存储,堆外存储合并在一起处理,消除底层差异。

netty数据缓冲区与nio缓冲区的区别

原文:https://www.cnblogs.com/zzq-include/p/12090101.html

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