JavaWeb合集15-线程局部变量ThreadLocal

十五、ThreadLocal

ThreadLocal并不是一个Thread,,而是Thread的局部变量。

ThreadLocal为每个线程提供单独一份存储空间,具有线程隔离的效果,只有在线程内才能获取到对应的值,线程外则不能访问。

场景:通过过滤器/过滤器获取到JWT ,可将JWT值存储到ThreadLocal中,当执行到需要JWT的地方是可以进行取出使用(当前线程内)。

主要用途

  1. 数据隔离:在多线程环境中,确保每个线程都有自己的变量副本,避免线程之间的数据干扰。
  2. 状态保持:在同一个线程的不同方法调用之间保持状态,而不需要通过参数传递。
  3. 资源管理:在每个线程中管理资源,如数据库连接、Session 等。

常见方法/使用

ThreadLocal常用方法 说明
public void set( T value ) 设置当前线程的线程局部变量的值
public T get() 获取当前所对应线程局部变量的值
public void remove() 删除当前线程的线程局部变量
  • set(T value):设置当前线程的 ThreadLocal 变量的值。
  • get():获取当前线程的 ThreadLocal 变量的值。
  • remove():移除当前线程的 ThreadLocal 变量的值。
  • initialValue():返回此线程局部变量的初始值。默认返回 null,可以通过 withInitial 方法提供自定义的初始值。

ThreadLocal 线程工具类,保存当前线程处理的用户的用户ID(或其他ID)

/**
 * ThreadLocal 线程工具类,保存当前线程处理的用户的用户ID(或其他ID)
 */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值