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

 

相关内容

热门资讯

透视安装(WPK)一贯真的有挂... 透视安装(WPK)一贯真的有挂(透视)微扑克微乐辅助(黑科技教程)1、这是跨平台的微扑克微乐辅助黑科...
透视好牌!wepoker开脚本... 透视好牌!wepoker开脚本视频,wepoker免费脚本咨询(切实存在有挂)1、超多福利:超高返利...
透视私人局!aa poker透... 透视私人局!aa poker透视软件(透视)脚本(一贯有挂)1、aa poker透视软件系统规律教程...
透视科技!德扑HHpoker有... 透视科技!德扑HHpoker有挂吗,hhpoker辅助软件下载,系统教程(有挂解密);1、hhpok...
透视神器(WPK)果然是有挂(... 透视神器(WPK)果然是有挂(透视)微扑克微乐辅助(扑克教程)1、这是跨平台的微扑克微乐辅助黑科技,...
透视软件!wepoker看底牌... 透视软件!wepoker看底牌,wepoker透视脚本网页(其实是真的有挂);1、wepoker透视...
透视系统!hhpoker辅助软... 透视系统!hhpoker辅助软件下载,hhpoker透视脚本视频,解密教程(有挂解密)1、hhpok...
透视能赢!aapoker插件(... 透视能赢!aapoker插件(透视)真的假的(总是有挂)aapoker插件软件透明挂微扑克wpk插件...
透视真的(WPK)确实真的是有... 透视真的(WPK)确实真的是有挂(透视)wpk私人局辅助是真的吗(科技教程)一、wpk私人局辅助是真...
透视安装!wepoker透视脚... 透视安装!wepoker透视脚本免费使用视频,wepoker手机版辅助(原来是有挂)wepoker透...