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的时候被回收

相关推荐
c0d1ng3 分钟前
量子计算学习(第十四周周报)
学习·量子计算
Brookty12 分钟前
【JavaEE】线程安全-内存可见性、指令全排序
java·开发语言·后端·java-ee·线程安全·内存可见性·指令重排序
tellmewhoisi30 分钟前
前置配置1:nacos 基本配置(注册与发现)
java
会开花的二叉树35 分钟前
继承与组合:C++面向对象的核心
java·开发语言·c++
长河2 小时前
Java开发者LLM实战——LangChain4j最新版教学知识库实战
java·开发语言
Cyan_RA93 小时前
SpringMVC @RequestMapping的使用演示和细节 详解
java·开发语言·后端·spring·mvc·ssm·springmvc
喵手5 小时前
玩转Java网络编程:基于Socket的服务器和客户端开发!
java·服务器·网络
再见晴天*_*6 小时前
SpringBoot 中单独一个类中运行main方法报错:找不到或无法加载主类
java·开发语言·intellij idea
Hello_Embed7 小时前
STM32HAL 快速入门(二十):UART 中断改进 —— 环形缓冲区解决数据丢失
笔记·stm32·单片机·学习·嵌入式软件
咸甜适中7 小时前
rust语言 (1.88) 学习笔记:客户端和服务器端同在一个项目中
笔记·学习·rust