zoukankan      html  css  js  c++  java
  • netty数据缓冲区与nio缓冲区的区别

    nio中ByteBuffer和netty中的ByteBuf相比确实后者更加的好用:

    (1)ByteBuf可以在用户使用数据区空间不足的情况下以2的指数倍扩容,相比ByteBuffer的char数组是final修饰的,一旦需要扩容只能人为手动干预,并且只能重新申请数组并copy才可以。

    (2)ByteBuf有readIndex和writeIndex两个概念,从而把数据区分为3段,一段为已经都去过的可丢弃的数据区discardReadArea(从0位置到readIndex位置);一段为可读取的区域readArea(从readIndex位置到writeIndex位置);最后一段是可写的数据区writeArea(从writeIndex位置到capacity位置),相比ByteBuffer在数据区只有position和limit配合使用更加灵活。

    (3)netty的ByteBuf有三种容器,除了堆内存储,堆外存储以外。还添加了一种容器,这种容器可以将堆内存储,堆外存储合并在一起处理,消除底层差异。

  • 相关阅读:
    作业3月30号
    21、,模块与包的使用
    作业3月26号
    20、面向函数与匿名函数及模块
    作业3月25号
    19、迭代器及函数的递归调用
    作业3月24号
    06-函数
    3.17---购物车练习
    3.15---文件处理练习2
  • 原文地址:https://www.cnblogs.com/zzq-include/p/12090101.html
Copyright © 2011-2022 走看看