当前位置: 首页 > news >正文

手表电商网站湖南人文科技学院官网教务系统

手表电商网站,湖南人文科技学院官网教务系统,建筑之家,天水做网站的公司一句话本质 为每个线程创建独立的变量副本,实现多线程环境下数据的安全隔离(线程操作自己的副本,互不影响)。 关键解读: 核心机制 • 同一个 ThreadLocal 对象(如示意图中的红色区域 tl)被多个线…

一句话本质
为每个线程创建独立的变量副本,实现多线程环境下数据的安全隔离(线程操作自己的副本,互不影响)。


关键解读:

  1. 核心机制
    • 同一个 ThreadLocal 对象(如示意图中的红色区域 tl)被多个线程共享。

    • 每个线程调用 set()/get() 时,实际访问的是自己线程的专属存储空间(如图中的蓝色和绿色区域)。

    • 例如:线程1设置 "萧炎",线程2设置 "药尘",但各自 get() 时互不干扰。

  2. 线程安全的根源
    • 数据不共享:每个线程的变量副本独立存储(如 ThreadLocal 内部通过 ThreadLocalMap 实现线程隔离)。

    • 无需加锁:天然规避多线程竞争,性能更高。

  3. 典型应用场景
    • 数据库连接(每个线程独立 Connection

    • 用户会话信息透传(如身份信息跨方法传递)

    • 非线程安全工具类(如 SimpleDateFormat 的线程隔离使用)


图片中的直接印证:
• 两个线程操作同一个 tl(红色区域),但分别 set("萧炎")set("药尘")

• 多次 tl.get() 始终返回自己线程设置的值,直观体现了“变量副本隔离”的特性。


总结:
ThreadLocal = 线程专属储物柜
• 全局只有一个柜子管理员(ThreadLocal 对象)

• 但每个线程(人)有自己的独立储物格(变量副本)

• 存/取数据时,自动匹配当前线程的储物格,绝对安全,永不串用。

在这里插入图片描述

在这里插入图片描述
所以我们对代码进行修改
创建一个工具类ThreadLocalUtil
代码如下:

package com.itheima.utils;import java.util.HashMap;
import java.util.Map;/*** ThreadLocal 工具类*/
@SuppressWarnings("all")
public class ThreadLocalUtil {//提供ThreadLocal对象,private static final ThreadLocal THREAD_LOCAL = new ThreadLocal();//根据键获取值public static <T> T get(){return (T) THREAD_LOCAL.get();}//存储键值对public static void set(Object value){THREAD_LOCAL.set(value);}//清除ThreadLocal 防止内存泄漏public static void remove(){THREAD_LOCAL.remove();}
}

在拦截器中修改代码增加把业务数据存储到threadLocal中

在这里插入图片描述

然后在usercontroller中对代码进行修改,重新获取username对象
在这里插入图片描述

最后不要忘记在拦截器调用remove进行释放

在这里插入图片描述

http://www.dtcms.com/a/545000.html

相关文章:

  • 【软件可维护性测试:构建可持续演进更新的软件系统】
  • 【小白笔记】 while 与 for + break 的比较分析
  • STM32中死机 Crash dump 打印出函数调用关系
  • STM32的GPIOx_IDR 与 GPIOx_ODR
  • Rust 借用检查器(Borrow Checker)的工作原理:编译期内存安全的守护者
  • 仓颉语言核心技术深度解析:面向全场景智能时代的现代编程语言
  • 漳州住房和城乡建设部网站简单的页面
  • 架构论文《论负载均衡的设计与应用》
  • Linux frameworks 音视频架构音频部分
  • 【AI论文】PICABench:我们在实现物理逼真图像编辑的道路上究竟走了多远?
  • 设计模式之抽象工厂模式:最复杂的工厂模式变种
  • 设计模式>原型模式大白话讲解:就像复印机,拿个原件一复印,就得到一模一样的新东西
  • 网站数据库大小石家庄发布最新消息
  • 本地运行Tomcat项目
  • 大模型如何变身金融风控专家
  • 台州网站建设维护网页设计与制作教程杨选辉
  • 动力网站移动端模板网站建设价格
  • Windows 10终止服务支持:企业IT安全迎来重大考验
  • Mac os安装Easyconnect卡在正在验证软件包
  • 手机网站免费模板下载门户网站 销售
  • 学习和掌握RabbitMQ及其与springboot的整合实践(篇二)
  • Flink、Storm、Spark 区别
  • 当 AI Agent 遇上工作流编排:微软 Agent Framework 的 Workflow 深度解析
  • 5步构建多模式内容策略:统一品牌信息,最大化内容影响力
  • STP 转换为 3DXML 的技术指南及迪威模型网在线转换推荐
  • 如何建设视频网站好的网站设计题目
  • 深入理解 Vite 开发服务器的 Local 与 Network 地址
  • 免费建立网站的网站吗免费软件视频
  • 和利时 PLC 配网
  • 时间序列数据预测:14种机器学习与深度学习模型