知识卡片

读写索引分离

专业/工作 · 575.a

内容

ByteBuf 用 readerIndex 和 writerIndex 分离读写位置,避免 ByteBuffer 依赖 flip() 切换模式。它让“已读、可读、可写”的区域边界同时存在,降低协议解析时反复切换状态的心智负担。

参考来源

- 位置:《Netty实战》第04章《Netty内存管理》(源文件:_epub-src/OEBPS/Text/chapter4.xhtml) - 结论依据:原文说明 ByteBuf 不需要调用 flip() 即可切换读写,并用 readerIndex、writerIndex 两个索引配合缓冲区读写。 - 原始内容:ByteBuf还通过一个内置的复合缓冲类型实现了零拷贝……ByteBuf通过两个位置(position)索引指针来配合缓冲区的读写操作,读操作使用readerIndex索引指针,写操作使用writerIndex索引指针。