知识卡片
读写索引分离
内容
ByteBuf 用 readerIndex 和 writerIndex 分离读写位置,避免 ByteBuffer 依赖 flip() 切换模式。它让“已读、可读、可写”的区域边界同时存在,降低协议解析时反复切换状态的心智负担。
参考来源
- 位置:《Netty实战》第04章《Netty内存管理》(源文件:_epub-src/OEBPS/Text/chapter4.xhtml)
- 结论依据:原文说明 ByteBuf 不需要调用 flip() 即可切换读写,并用 readerIndex、writerIndex 两个索引配合缓冲区读写。
- 原始内容:ByteBuf还通过一个内置的复合缓冲类型实现了零拷贝……ByteBuf通过两个位置(position)索引指针来配合缓冲区的读写操作,读操作使用readerIndex索引指针,写操作使用writerIndex索引指针。