前文传送门:Netty分布式Future与Promise执行回调相关逻辑剖析
概述
FastThreadLocal我们在剖析堆外内存分配的时候简单介绍过, 它类似于JDK的ThreadLocal, 也是用于在多线程条件下, 保证统一线程的对象共享, 只是netty中定义的FastThreadLocal, 性能要高于jdk的ThreadLocal, 具体原因会在之后的小节进行剖析
Recyler我们应该也不会太陌生, 因为在之前章节中, 有好多地方使用了Recyler
Recyler是netty实现的一个轻量级对象回收站, 很多对象在使用完毕之后, 并没有直接交给gc去处理, 而是通过对象回收站将对象回收, 目的是为了对象重用和减少gc压力
比如ByteBuf对象的回收, 因为ByteBuf对象在netty中会频繁创建, 并且会占用比较大的内存空间, 所以使用完毕后会通过对象回收站的方式进行回收, 已达到资源重用的目的
这一章就对FastThreadLocal和Recyler两个并发工具类进行分析
第一节:FastThreadLocal的使用和创建
首先我们看一个最简单的demo
public class FastThreadLocalDemo { final class FastThreadLocalTest extends FastThreadLocal