ThreadLocal工具类

threadlocal是一个线程内部的存储类,可以在指定线程内存储数据,数据存储以后,只有指定线程可以得到存储数据。
ThreadLocal的静态内部类ThreadLocalMap为每个Thread都维护了一个数组table,ThreadLocal确定了一个数组下标,而这个下标就是value存储的对应位置。

以下是ThreadLocal工具类(从网上收集的资料进行调整)

import java.util.HashMap;
import java.util.Map;

/**
 * @author lcy
 * @since 2021/7/15 15:32
 */
public class ThreadLocalUtil {

    private static final ThreadLocal> threadLocal = ThreadLocal.withInitial(() -> new HashMap<>(10));

    public static Map getThreadLocal() {
        return threadLocal.get();
    }

    public static Object get(String key) {
        Map map = threadLocal.get();
        return map.get(key);
    }

    public static void set(String key, Object value) {
        Map map = threadLocal.get();
        map.put(key, value);
    }

    public static void set(Map keyValueMap) {
        Map map = threadLocal.get();
        map.putAll(keyValueMap);
    }

    public static void remove() {
        threadLocal.remove();
    }

    public static  T remove(String key) {
        Map map = threadLocal.get();
        return (T) map.remove(key);
    }

}

你可能感兴趣的:(自学笔记,java)