Netty中FastThreadLocal源码解析
简介
ThreadLocal一个特殊变体,当从FastThreadLocalThread访问时,可获得更高的访问性能。
在内部, FastThreadLocal在数组中使用常量索引来查找变量,而不是使用哈希码和哈希表。 尽管看似非常微妙,但与使用哈希表相比,它在性能上却有一点优势,并且在经常访问时很有用。
要利用此线程局部变量,您的线程必须是FastThreadLocalThread或其子类型。 由于这个原因,默认情况下, DefaultThreadFactory创建的所有线程均为FastThreadLocalThread 。
请注意,只有在扩展FastThreadLocalThread线程上才可以使用快速路径,因为它需要一个特殊的字段来存储必要的状态。 任何其他类型的线程的访问都回退到常规ThreadLocal 。
上面这段描述来自FastThreadLocal源码中的文档,从中可以知道FastThreadLocal必须和FastThreadLocalThread或其子类型一起使用才可以达到Fast的效果。
