Java|ThreadLocal

ThreadLocal 是线程本地变量,用与在线程上下文中共享变量。

ThreadLocal 经常用在框架中,例如 SpringSecurity 用它存储当前请求的操作用户。

  • ThreadLocal 既线程本地变量,可以使变量为线程私有,避免状态共享出现线程安全问题。
  • InheritableThreadLocal 继承 ThreadLocal 实现,可以使子线程共享父线程的 ThreadLocal。
  • FastThreadLocal 是 Netty 实现的一个 ThreadLocal,当从 FastThreadLocalThread 访问时,可以产生更高的访问性能,在 FastThreadLocal 内部使用数组中的索引来查找变量,而不是使用哈希码和哈希表。