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

 

相关内容

热门资讯

通报开挂!情怀游戏字牌辅助,h... >>您好:情怀游戏字牌辅助确实是有挂的,很多玩家在这款情怀游戏字牌辅助游戏中打牌都会发现很多用户的牌...
总算清楚“微信小程序嘟嘟十三张... 总算清楚“微信小程序嘟嘟十三张脚本”wepoker透视破解版(带开挂辅助安装透明挂教程) 【无需打开...
教程辅助“微信小程序蜀山四川辅... 教程辅助“微信小程序蜀山四川辅助器”真实有挂开挂辅助软件大神讲解微信小程序蜀山四川辅助器ai黑科技系...
盘点一款“手机字牌辅助脚本工具... 盘点一款“手机字牌辅助脚本工具”hhpoker有没有辅助辅助(带开挂辅助下载攻略方法);无需打开直接...
教程辅助“潮汕汇app透视软件... 教程辅助“潮汕汇app透视软件”揭秘有挂开挂辅助平台分享教程;无需打开直接搜索薇:136704302...
透视教学“陕麻圈内购破解辅助”... 透视教学“陕麻圈内购破解辅助”pokemmo手机辅助软件(带开挂辅助安装扑克教程);无需打开直接搜索...
教程辅助“打两圈辅助软件”真实... 较多好评“微乐万能挂官网”开挂(透视)辅助教程 了解更多开挂安装加(136704302)微信号是一款...
玩家必看秘籍“新荣耀平台辅助”... 玩家必看秘籍“新荣耀平台辅助”wepoker辅助软件价格(带开挂辅助神器黑科技教程);亲,wepok...
教程辅助“游戏茶苑辅助器”有挂... 游戏茶苑辅助器 无需打开直接搜索微信:136704302本司针对手游进行,选择我们的四大理由: 1、...
重大通报“闲来游戏辅助软件”w... 闲来游戏辅助软件是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的用户可以加我微...