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

 

相关内容

热门资讯

盘点几款辅助器方法!大唐麻将全... 盘点几款辅助器方法!大唐麻将全集多功能辅助器方法,大唐麻将全集果然是真的有辅助器方法大唐麻将全集辅助...
科普分享透视挂策略!新道游多功... 科普分享透视挂策略!新道游多功能透视挂攻略,新道游切实真的有辅助攻略1、在新道游插件功能辅助器技巧中...
我来教大家辅助器app!广东麻... 我来教大家辅助器app!广东麻将多功能辅助器app,广东麻将好像有辅助器app1、下载好广东麻将脚本...
盘点一款透视挂指引!163棋牌... 盘点一款透视挂指引!163棋牌多功能透视挂软件,163棋牌一贯存在有辅助软件1、163棋牌免费脚本咨...
科技通报辅助器教程!小白大作战... 您好,小白大作战这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多玩家在这...
玩家必看开挂手册!乐虎棋牌多功... 玩家必看开挂手册!乐虎棋牌多功能开挂方法,乐虎棋牌原来真的有辅助方法进入游戏-大厅左侧-新手福利-激...
我来分享辅助器攻略!丫丫棋牌多... 我来分享辅助器攻略!丫丫棋牌多功能辅助器攻略,丫丫棋牌竟然真的有辅助器攻略1、用户打开应用后不用登录...
最新技巧透视指南!丫丫湖南麻将... 最新技巧透视指南!丫丫湖南麻将多功能透视方法,丫丫湖南麻将一贯是有辅助方法1、每一步都需要思考,不同...
我来教教你透视器教程!微友南昌... 我来教教你透视器教程!微友南昌麻将多功能透视器教程,微友南昌麻将一贯真的有透视器教程1、下载好微友南...
重大通报辅助挂讲义!大富豪多功... 重大通报辅助挂讲义!大富豪多功能辅助挂工具,大富豪都是是真的有辅助工具该软件可以轻松地帮助玩家将大富...