Netty之轻量级对象池Recycler
来源:互联网 发布:mac版解压rar软件 编辑:程序博客网 时间:2024/06/06 13:04
为什么说Recycler是“轻量级”的对象池?
功能简单:对象池只提供了创建和回收的基本接口,没有复杂的诸如有效性检测、空闲回收和拒绝策略等一些复杂功能。
逻辑简单:实现逻辑清晰简单,没有复杂的算法逻辑。
Recycler核心方法
- get(): 获取一个对象;
- recycle(T, Handle): 回收一个对象,T为对象泛型;
- newObject(Handle): 当没有可用对象时创建对象的实现方法;
Recycler核心类
- DefaultHandle: 对象的包装类,在Recycler中缓存的对象都会包装成DefaultHandle类。
- Stack: 存储本线程回收的对象 。对象的获取和回收对应Stack的pop和push,即获取对象时从Stack中pop出1个DefaultHandle,回收对象时将对象包装成DefaultHandle push到Stack中。Stack会与线程绑定,即每个用到Recycler的线程都会拥有1个Stack,在该线程中获取对象都是在该线程的Stack中pop出一个可用对象。
- WeakOrderQueue: 存储其它线程回收到本线程stack的对象 ,当某个线程从Stack中获取不到对象时会从WeakOrderQueue中获取对象。每个线程的Stack拥有1个WeakOrderQueue链表,链表每个节点对应1个其它线程的WeakOrderQueue,其它线程回收到该Stack的对象就存储在这个WeakOrderQueue里。
- Link: WeakOrderQueue中包含1个Link链表,回收对象存储在链表某个Link节点里,当Link节点存储的回收对象满了时会新建1个Link放在Link链表尾。
Recycler创建和回收流程
Recycler存储结构
阅读全文
0 0
- Netty之轻量级对象池Recycler
- netty-对象池实现Recycler用法测试
- Netty源码 Recycler 对象池全面解析
- Netty源码分析(七)—Recycler对象池分析
- Netty轻量级对象池实现分析
- Netty轻量级对象池实现分析
- 解读io.netty.util.Recycler
- ListView之Recycler机制
- Netty精粹之轻量级内存池技术实现原理与应用
- Netty精粹之轻量级内存池技术实现原理与应用
- RECYCLER
- Recycler
- Netty学习之旅------源码分析Netty线程本地分配机制与PooledByteBuf线程级对象池原理分析
- RecycleView源码浅析之Recycler+滑动
- 【初学与研发之NETTY】netty4之对象、字节传输
- nio学习之netty入门(3)---发送对象
- 【Netty】Netty系列之Netty可靠性分析
- 【Netty】Netty系列之Netty线程模型
- 数字货币的未来发展
- ubuntu安装faster r-cnn(caffe,python,only cpu)
- 【Matlab】输出字符串到控制台
- 设计模式之单例模式
- JVM内存布局、垃圾收集算法、volatile讲解
- Netty之轻量级对象池Recycler
- 删除操作要谨慎,最好不做
- recycleView中引用v4包出错处理
- ssh框架hibernate 2持久化对象和关系关联映射
- Spring
- Lighting System Design UVA
- 机器学习算法之逻辑回归
- TFS(Taobao File System)安装方法
- struts2 中的 addActionError 、addFieldError、addActionMessage的方法【转】