Advertisement

Netty ByteBuf 详解

阅读量:

ByteBuf的结构,如下图所示

ByteBuf 是一个字节数组,在其内部划分为三个区域:首先是已经被废弃不用的部分——被废弃的空间或数据块无法被访问或利用;其次是当前模块的核心存储区——任何来自该模块的数据都将被存储在这里;最后是预留的部分——附加空间用于后续扩展存储容量

以上三部分由两个指针分隔开来。按顺序排列着读指针(ReaderIndex)和写指针(writerIndex)。此外,还有一个变量capacity代表ByteBuf存储空间的最大容量。

每当从ByteBuf中读取一个字节时

4.存储数据从writerIndex所指位置开始存储,在每次存储一个字节时都会使writerIndex递增1直至达到容量限制capacity为止。此时表明ByteBuf已无法继续存储。

  1. ByteBuf中包含了一个额外的参数maxCapacity。每当向ByteBuf添加数据时,如果当前容量不足,则就可以进行扩展处理,直到capacity被扩展至maxCapacity为止。一旦capacity超过maxCapacity就会触发错误提示。

容量相关API

capacity() 定

全部评论 (0)

还没有任何评论哟~