netty简化框架实现

netty框架实现的简化版本

git地址:

https://github.com/zhaozhenzuo/nettyProject




目前实现功能:

1.server启动boss及work线程监听客户端连接及处理读写操作

  

2.direct内存池
  小块内存请求,优先从threadCache分配。
  有一个大的chunk,默认大小为16M。
  chunk由n个page构成。
  
  内存分配设计跟netty类似,由一个数组构造出一棵完全二叉树。
  叶子结点对应具体page结点的内存使用情况,非叶子结点记录了对应它的所有子结点的使用情况。
  内存使用情况有三种状态:0-未分配 1-部分分配 2-已全部分配
  
  整个内存池设计涉及类:
  PoolChunk:
    一个完整的chunk类,职责是维护物理内存,以及这个chunk内page的分配逻辑。
  PoolBuf:
    用户申请内存后,得到的是这个对象。目前只有direct实现。这个对象最终读写是跟chunk对应的物理内存块交互。这个类只是维护了逻辑位置。
   
  PoolArena:
    内存分配类,职责是:

     小于等于一个page大小的内存请求优先从threadCache分配,大于一个page的从公共内存池获取(目前未实现)。

     线程独有。

  MemCache:
    线程缓存的内存对象,内存有多个chunk实例对象,每个线程独有。
    
  PoolThreadCache:

    实现线程缓存对象的存取,内部poolArena线程独有。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值