知识卡片
ByteBuf双指针读写分离设计
内容
ByteBuf用读指针(readerIndex)和写指针(writerIndex)两个独立游标划出已丢弃、可读、可写三段区域,读操作只推进读指针,写操作只推进写指针,互不干扰。这与JDK原生ByteBuffer共用一个position、读写切换须手动flip()对比——单指针把读写语义压缩进同一游标,容易因忘记flip出错。发散:用两个独立状态量表达两种关注点,是接口设计减少心智负担的常见思路。
参考来源
《跟闪电侠学Netty:Netty即时聊天实战与底层原理》第7章《数据载体ByteBuf的介绍》