ThreadLocal学习

用来存储当前用户的id,通过解析JWT得到id,将id放入到线程池中去。

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

实际开发使用;

java 复制代码
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的时候被回收

相关推荐
无限大.8 分钟前
c语言200例 067
java·c语言·开发语言
余炜yw9 分钟前
【Java序列化器】Java 中常用序列化器的探索与实践
java·开发语言
攸攸太上9 分钟前
JMeter学习
java·后端·学习·jmeter·微服务
Kenny.志12 分钟前
2、Spring Boot 3.x 集成 Feign
java·spring boot·后端
不修×蝙蝠15 分钟前
八大排序--01冒泡排序
java
sky丶Mamba30 分钟前
Spring Boot中获取application.yml中属性的几种方式
java·spring boot·后端
Ljubim.te38 分钟前
Linux基于CentOS学习【进程状态】【进程优先级】【调度与切换】【进程挂起】【进程饥饿】
linux·学习·centos
数据龙傲天1 小时前
1688商品API接口:电商数据自动化的新引擎
java·大数据·sql·mysql
yngsqq1 小时前
031集——文本文件按空格分行——C#学习笔记
笔记·学习·c#
带带老表学爬虫1 小时前
java数据类型转换和注释
java·开发语言