当前位置:首页 > 技术 >

threadlocal为什么要加static(threadlocalentry为什么是弱引用)

来源:原点资讯(m.360kss.com)时间:2023-04-15 23:48:12作者:YD166手机阅读>>

原文地址:https://mp.weixin.qq.com/s/SysYihctu03RlUtI0pcG7w

作者:零度冰炫

面试官:说说你对ThreadLocal的理解...

我们该怎么回答????

  • ThreadLocal用在什么地方?
  • ThreadLocal一些细节!
  • ThreadLocal的最佳实践!
思考

ThreadLocal用在什么地方?

讨论ThreadLocal用在什么地方前,我们先明确下,如果仅仅就一个线程,那么都不用谈ThreadLocal的,ThreadLocal是用在多线程的场景的!!!

ThreadLocal归纳下来就2类用途:

  • 保存线程上下文信息,在任意需要的地方可以获取!!!
  • 线程安全的,避免某些情况需要考虑线程安全必须同步带来的性能损失!!!

保存线程上下文信息,在任意需要的地方可以获取!!!

由于ThreadLocal的特性,同一线程在某地方进行设置,在随后的任意地方都可以获取到。从而可以用来保存线程上下文信息。

常用的比如每个请求怎么把一串后续关联起来,就可以用ThreadLocal进行set,在后续的任意需要记录日志的方法里面进行get获取到请求id,从而把整个请求串起来。

还有比如Spring的事务管理,用ThreadLocal存储Connection,从而各个DAO可以获取同一Connection,可以进行事务回滚,提交等操作。

备注:ThreadLocal的这种用处,很多时候是用在一些优秀的框架里面的,一般我们很少接触,反而下面的场景我们接触的更多一些!

线程安全的,避免某些情况需要考虑线程安全必须同步带来的性能损失!!!

ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。但是ThreadLocal也有局限性,我们来看看阿里规范:

threadlocal为什么要加static,threadlocalentry为什么是弱引用(1)

每个线程往ThreadLocal中读写数据是线程隔离,互相之间不会影响的,所以ThreadLocal无法解决共享对象的更新问题!

由于不需要共享信息,自然就不存在竞争问题了,从而保证了某些情况下线程的安全,以及避免了某些情况需要考虑线程安全必须同步带来的性能损失!!!

这类场景阿里规范里面也提到了:

threadlocal为什么要加static,threadlocalentry为什么是弱引用(2)

ThreadLocal一些细节!

ThreaLocal使用示例代码:

threadlocal为什么要加static,threadlocalentry为什么是弱引用(3)

代码截图:

threadlocal为什么要加static,threadlocalentry为什么是弱引用(4)

首页 1234下一页

栏目热文

通体大理石瓷砖要除蜡吗

通体大理石瓷砖要除蜡吗

    说到大理石石材,大家都不陌生,那么讲到大理石石材的抛光打蜡的问题,这个很多大家可能就不是很特别的清楚了,大理石石...

2023-04-15 23:58:01查看全文 >>

什么样的瓷砖需要打蜡(瓷砖用什么打蜡)

什么样的瓷砖需要打蜡(瓷砖用什么打蜡)

瓷砖表面光滑坚硬,一般来说瓷砖不会有什么损害,基本上是用拖把沾湿拖一遍地面就可以了。其实生活中,有一些茶叶水,酱油、可乐...

2023-04-15 23:27:49查看全文 >>

瓷砖需不需要打蜡(瓷砖什么情况下需要打蜡)

瓷砖需不需要打蜡(瓷砖什么情况下需要打蜡)

瓷砖需要打蜡吗?恐怕99%的人都认为不需要打蜡。但是,秀巢网小编想说的是,有的瓷砖,的确是需要打蜡的,这主要取决于你买的...

2023-04-15 23:31:48查看全文 >>

家用瓷砖需要打蜡吗(家里瓷砖十几年了需要打蜡吗)

家用瓷砖需要打蜡吗(家里瓷砖十几年了需要打蜡吗)

大家都知道,刚装修完工的瓷砖效果非常好,但是使用一段时间过后就会觉得没有以前的光泽,效果也不好,那是因为日常保养没有做到...

2023-04-15 23:54:54查看全文 >>

旧瓷砖打蜡抛光(瓷砖釉面磨损打蜡能修复吗)

旧瓷砖打蜡抛光(瓷砖釉面磨损打蜡能修复吗)

很多业主会遇到这样一个问题,在展厅看瓷砖的时候,感觉瓷砖的光泽度非常好、很漂亮。但装修完自家时,却感觉瓷砖就是没展厅的亮...

2023-04-15 23:13:36查看全文 >>

threadlocal正确使用方法(thread local通俗易懂)

threadlocal正确使用方法(thread local通俗易懂)

开场白张三最近天气很热心情不是很好,所以他决定出去面试跟面试官聊聊天排解一下,结果刚投递简历就有人约了面试。我丢,什么情...

2023-04-15 23:31:07查看全文 >>

threadlocal的缺点(threadlocal应用场景)

threadlocal的缺点(threadlocal应用场景)

在 Java 中,如果要问哪个类使用简单,但用好最不简单?我想你的脑海中一定会浮现出一次词——“ThreadLocal”...

2023-04-15 23:39:40查看全文 >>

threadlocal使用实例(threadlocal例子)

threadlocal使用实例(threadlocal例子)

如何统计时间说着说着,慧能写了一段程序说着说着一尘就随手写了一段程序经验丰富的慧能一眼就看出来这个程序的致命缺陷这个程序...

2023-04-15 23:18:30查看全文 >>

threadlocal为什么是弱引用(threadlocal为什么是安全的)

threadlocal为什么是弱引用(threadlocal为什么是安全的)

前言大家好,我是捡田螺的小男孩。无论是工作还是面试,我们都会跟ThreadLocal打交道,今天就跟大家聊聊Thread...

2023-04-15 23:32:30查看全文 >>

threadlocal使用场景(threadlocal不能使用的场景)

threadlocal使用场景(threadlocal不能使用的场景)

推荐学习 前言相信很多同学都听过threadLocal,即使没用过也听过。但是要仔细一问ThreadLocal是个啥,...

2023-04-15 23:59:17查看全文 >>

文档排行