ThreadLocal有哪些应用场景?底层如何实现?
创始人
2025-01-08 10:34:32
0

1.如何使用?

public class ThreadLocalExample {     private static final ThreadLocal threadLocal = new ThreadLocal<>();      public static void main(String[] args) {         Runnable task = () -> {             threadLocal.set("Hello from thread " + Thread.currentThread().getName());             try {                 Thread.sleep(1000);             } catch (InterruptedException e) {                 e.printStackTrace();             }             String value = threadLocal.get();             System.out.println(value);             threadLocal.remove();         };          Thread thread1 = new Thread(task);         Thread thread2 = new Thread(task);          thread1.start();         thread2.start();     } }

2.如何理解?

每个thread线程上有一个threadlocalmap变量,用来存储当前线程的threadlocal数据。

当调用threadlocal的set或get方法时,本质上是操作本线程的threadlocalmap。key用来存储当前threadlocal,value用来存储值。

实际上,threadlocal只是用来操作当前thread线程threadlocalmap的工具类而已,threadlocalmap并不是存储在threadlocal中。

 3.注意哪些问题?

1.内存泄露/溢出:需要手动调用threadlocal.remove()来销毁

4.应用场景有哪些? 

1.多个场景需要用到同一种变量,但每个场景里所用到的变量值不同,需要相互隔离的。

2.隔离线程,存储一些不安全的工具对象。

3.spring中的事物。

4.springMVC中的httpsession,httpservletrequest,httpservletresponse

 

相关内容

热门资讯

据文件显示!山西扣点点辅助挂定... 据文件显示!山西扣点点辅助挂定制交易平台,天天川南悠闲辅助,诀窍教程(有挂秘籍)-哔哩哔哩据文件显示...
必看攻略!wepoker破解版... 必看攻略!wepoker破解版内购,新上游拼十辅助,好像真的是有辅助安装(有人有挂)1、必看攻略!w...
此事迅速冲上热搜!hhpoke... 此事迅速冲上热搜!hhpoker辅助挂(透视)切实是有辅助插件(有挂辅助)-哔哩哔哩1)hhpoke...
普及透视!德州私人局脚本!技术... 普及透视!德州私人局脚本!技术分享辅助挂(有挂方法)-哔哩哔哩一、德州私人局脚本可以开透视的定义与意...
据监测!葫芦娃七子连心攻略,琼... 据监测!葫芦娃七子连心攻略,琼崖海南麻将辅助器,攻略教程(有人有挂)-哔哩哔哩进入游戏-大厅左侧-新...
透视了解!佛手在线有挂吗(透视... 透视了解!佛手在线有挂吗(透视)一贯存在有辅助下载(真实有挂)-哔哩哔哩1、佛手在线有挂吗透视辅助软...
指导大家!德普之星怎么开辅助,... 指导大家!德普之星怎么开辅助,微乐广西小程序,本来真的有辅助脚本(有挂猫腻)所有人都在同一条线上,像...
专业透视!hhpoker辅助挂... 专业透视!hhpoker辅助挂!推荐十款辅助攻略(有挂讲解)-哔哩哔哩1)hhpoker辅助挂免费钻...
经调查!青龙大厅挂什么价格,新... 经调查!青龙大厅挂什么价格,新二号透视辅助,项目教程(有挂分享)-哔哩哔哩青龙大厅挂什么价格脚本下载...
据监测!hhpoker可以控制... 据监测!hhpoker可以控制牌吗(透视)都是有辅助辅助器(有挂分析)-哔哩哔哩1、进入到hhpok...