Class FastThreadLocal<V>

java.lang.Object
org.miaixz.bus.core.lang.thread.threadlocal.FastThreadLocal<V>

public class FastThreadLocal<V> extends Object
ThreadLocal 的一个特殊变体 当从 SpecificThread 访问时,可产生更高的访问性能。 SpecificThread 使用数组中的常量索引(而不是使用哈希码和哈希表)来查找变量。 虽然看似非常微妙,但它比使用哈希表具有轻微的性能优势,并且在频繁访问时很有用。
Since:
Java 17+
Author:
Kimi Liu
  • Constructor Summary

    Constructors
    Constructor
    Description
    构造
  • Method Summary

    Modifier and Type
    Method
    Description
    static void
    销毁保存所有从非 SpecificThread 访问的 FastThreadLocal 变量的数据结构 当处于容器环境中,并且不想将线程局部变量留在未管理的线程中时,此操作非常有用。 当应用程序从容器中卸载时,请调用此方法。
    final V
    get()
    获取当前线程的ThreadLocalMap中的当前线程的value
    protected V
    初始化参数 由子类重写
    protected void
    onRemoval(V value)
    当此线程局部变量被remove()删除时的回调 由子类重写
    final void
    清除当前的ThreadLocal
    final void
    remove(ThreadLocalMap threadLocalMap)
    将指定线程本地映射的值设置为未初始化 对 get() 的继续调用将触发对 initialValue() 的调用 指定的线程本地映射必须适用于当前线程。
    static void
    删除与当前线程绑定的所有 FastThreadLocal 变量。 当处于容器环境中,并且不想将线程局部变量留在未管理的线程中时,此操作非常有用
    final void
    set(V value)
    设置当前线程的值
    static int
    返回绑定到当前线程的线程局部变量的数量

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • FastThreadLocal

      public FastThreadLocal()
      构造
  • Method Details

    • size

      public static int size()
      返回绑定到当前线程的线程局部变量的数量
    • removeAll

      public static void removeAll()
      删除与当前线程绑定的所有 FastThreadLocal 变量。 当处于容器环境中,并且不想将线程局部变量留在未管理的线程中时,此操作非常有用
    • destroy

      public static void destroy()
      销毁保存所有从非 SpecificThread 访问的 FastThreadLocal 变量的数据结构 当处于容器环境中,并且不想将线程局部变量留在未管理的线程中时,此操作非常有用。 当应用程序从容器中卸载时,请调用此方法。
    • get

      public final V get()
      获取当前线程的ThreadLocalMap中的当前线程的value
    • set

      public final void set(V value)
      设置当前线程的值
      Parameters:
      value - 线程值
    • remove

      public final void remove()
      清除当前的ThreadLocal
    • remove

      public final void remove(ThreadLocalMap threadLocalMap)
      将指定线程本地映射的值设置为未初始化 对 get() 的继续调用将触发对 initialValue() 的调用 指定的线程本地映射必须适用于当前线程。
    • initialValue

      protected V initialValue()
      初始化参数 由子类重写
    • onRemoval

      protected void onRemoval(V value)
      当此线程局部变量被remove()删除时的回调 由子类重写