Bootstrap

ThreadLocal学习

用来存储当前用户的id,通过解析JWT得到id,将id放入到线程池中去。
在这里插入图片描述

编写的BaseContext类。 全部定义的是静态的方法。

实际开发使用;

public class BaseContext  {

    private static  ThreadLocal<Long> threadLocal=new ThreadLocal();
    public static void setCurrentId(Long id){
        threadLocal.set(id);
    }
    public static Long getCurrentId(){
        return (Long) threadLocal.get();
    }
    public static  void removeCurrentId(){
        threadLocal.remove();
    }

    public static void main(String[] args) {
        BaseContext.setCurrentId(19L);
        System.out.println(BaseContext.getCurrentId());
    }
}

在这里插入图片描述

在这里插入图片描述

用完之后就需要进行remove,删除对应的内存。

在这里插入图片描述

在这里插入图片描述
null 0 null 1 每个Threadlocal 只有一个自己的变量。

线程对象用完之后其实并没有销毁。

在这里插入图片描述

弱引用:gc的时候被回收
在这里插入图片描述
在这里插入图片描述

;