Netty 使用的是堆外内存,需要手动释放,使用引用计数的方式管理内存,当引用计数 =0,回收ByteBuf 底层内存
成都创新互联公司是专业的高陵网站建设公司,高陵接单;提供成都网站设计、做网站、成都外贸网站建设公司,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行高陵网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!原则:谁使用retain() , 谁释放release()
1.1.2 创建ByteBuf的方式其中
ctx 为 ChannelHandlerContext 通道处理上下文对象
ctx.alloc() 返回 ByteBufAllocator ByteBuf的分配器
2. 课程内容 1 ByteBuf 的结构API类别 | 名称 | 使用 |
容量 | capacity() | 当前ByteBuf容量 capacity = 已废弃的字节 + 可读字节 + 可写字节 |
maxCapacity() | 大容量= capacity + 可扩容字节 | |
readableBytes() | ByteBuf当前可读字节数,= writerIndex - readerIndex | |
isReadable() | 是否可读 | |
writableBytes() | ByteBuf当前可写字节数,= capacity - writeIndex | |
isWritable() | 是否可写 | |
MaxWritableBytes() | 大可写字节数,= maxCapacity - writeIndex | |
读写指针 | readerIndex() | 返回当前读指针readerIndex |
readerIndex(int) | 设置读指针index | |
writerIndex() | 返回当前写指针writerIndex | |
writerIndex(int) | 设置写指针index | |
markReaderIndex() | 保存当前读指针(推荐) | |
resetReaderIndex() | 把当前读指针恢复到之前保存的值(推荐) | |
markWriterIndex() | 保存当前写指针(推荐) | |
resetWriterIndex() | 把当前写指针恢复到之前保存的值(推荐) | |
读写 | readBytes(byte[] dst) | 把ByteBuf中的数据全部读取到dst |
writeBytes(byte[] src) | 将src中的数据写入到ByteBuf | |
readByte() | 从ByteBuf中读取一个字节 | |
writeByte(byte b) | 往ByteBuf写入一个字节 | |
retain() | 引用计数加1 | |
release() | 引用计数减1 | |
slice() | 截取readerIndex到writeIndex的数据,返回大容量为原始ByteBuf的readableBytes()的ByteBuf | |
duplicate() | 共享原始ByteBuf,书本确实示例,后期补全 | |
copy() | 复制原始ByteBuf,返回的ByteBuf写数据不影响原始ByteBuf | |
retainedSlice() | 等价于slice().retain(),需要调用一次release(),否则报错 | |
retainedDuplicate | 等价于duplicate().retain(),需要调用一次release(),否则报错 | |
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧