当前位置: 首页 > 后端技术 > Java

Netty-CompositeByteBuf

时间:2023-04-01 20:46:34 Java

CompositeByteBuf本质上是将多个ByteBuf组合成一个逻辑缓冲区。同时,每个缓冲区独立维护自己的读写索引。外层的CompositeByteBuf单独维护一个读写索引。读取时,根据输入参数的读取位置,对对应的组件进行二分查找,然后依次读取各个缓冲区中的可读字节。当添加新的时,会根据动态扩容的结果在已有的组件中添加一个新的buffer,并使用新的buffer进行读写,以免影响原buffer。扩容,如果超过16个buffer,申请一个大buffer,复制之前的数据。