登录 |  注册
首页 >  面试合集 >  Java大厂面经-复习笔记-更新中 >  说说ThreadLocal 你是怎么用的?

说说ThreadLocal 你是怎么用的?

一、Threadlocal可以解决什么问题?

1、缓存登录信息,使用Threadlocal来保存系统的登录用户信息user等

2、用于保存线程不安全的工具类,典型的需要使用的类就是 SimpleDateFormat等。

3、在Spring的Web项⽬中,我们通常会将业务分为Controller层,Service层,Dao层, 我们都知道@Autowired注解默认使⽤单例模式,那么不同请求线程进来之后,由于Dao层使⽤单例,那么负责数据库连接的Connection也只有⼀个, 如果每个请求线程都去连接数Dao层中装配的Connection肯定是线程安全的,其解决⽅案就是采⽤ThreadLocal⽅法,当每个请求线程使⽤Connection的时候, 都会从ThreadLocal获取⼀次,如果为null,说明没有进⾏过数据库连接,连接后存⼊ThreadLocal中,如此⼀来,每⼀个请求线程都保存有⼀份 ⾃⼰的Connection。于是便解决了线程安全问题

二、Threadlocal是什么?

    ThreadLocal是线程Thread中属性,即ThreadLocal.ThreadLocalMap的管理者,ThreadLocal用于给每个线程操作自己线程的本地变量,通过线程私有从而保证线程安全性。

三、Threadlocal内存泄漏的问题

    ThreadLocal.ThreadLocalMap.Entry中的key是弱引用的,也即是当某个ThreadLocal对象不存在强引用时,就会被GC回收,但是value是基于强引用的,所以当key被回收,但是value还存在其他强引用时,就会出现内存的泄露情况,在最新的ThreadLocal中已经做出了修改,即在调用set、get、remove方法时,会清除key为null的Entry,但是如果不调用这些方法,仍然还是会出现内存泄漏 ,所以要养成用完ThreadLocal对象之后及时remove的习惯。

知识补充:

  • 强引用,我们使用的大部分引用都是强引用,特点就是当内存不足时,垃圾回收器宁愿自己抛出OOM,也不会回收强引用来解决内存不足的问题

  • 软引用,就是生杀大权都在垃圾回收器中,我内存够的话,你可以活着,如果不够的话,我就回收你,给我腾地方;

  • 弱引用,只要垃圾回收器扫到,不管空间够不够,都给我回收了;

  • 虚引用,形同虚设的东西,在任何情况下都可能被回收

上一篇: Spring的getBean流程之多级缓存解决循环依赖
下一篇: Integer a=100,b=200比较详解
推荐文章
  •    目前支持I/O多路复用的系统调用有  select,pselect,poll,epoll,I/O多路复用就是 通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。 但select,pselect,poll,epoll本质上都是
  • 架构师在进行系统设计时,遵循一套复杂且综合的方法论,主要包括以下核心步骤:需求分析:理解并明确业务需求是架构设计的第一步。架构师需要与各利益相关者深入沟通,收集和分析业务需求、性能需求、安全性需求、扩展性需求等。领域建模:基于需求分析,构建抽象的业务模型或数据模型,明确系统的边界、核心实体及其关系。
  • 根据阿里交易型业务的特点,以及在双十一这样业内罕有的需求推动下,我们在官方的MySQL基础上增加了非常多实用的功能、性能补丁。而在使用MySQL的过程中,数据一致性是绕不开的话题之一。本文主要从阿里巴巴“去IOE”的后时代讲起,向大家简单介绍下我们过去几年在MySQL数据一致性上的努力和实践,以及目
  • 随着深度学习在图像、语言、广告点击率预估等各个领域不断发展,很多团队开始探索深度学习技术在业务层面的实践与应用。而在广告CTR预估方面,新模型也是层出不穷:WideandDeep、DeepCrossNetwork、DeepFM、xDeepFM,美团很多篇深度学习博客也做了详细的介绍。但是,当
  • 1.背景搜索优化问题,是个典型的AI应用问题,而AI应用问题首先是个系统问题。经历近10年的技术积累和沉淀,美团搜索系统架构从传统检索引擎升级转变为AI搜索引擎。当前,美团搜索整体架构主要由搜索数据平台、在线检索框架及云搜平台、在线AI服务及实验平台三大体系构成。在AI服务及实验平台中,模型训练平台
  • 行业算法版简介OpenSearch-行业算法版是基于阿里巴巴自主研发的大规模分布式搜索引擎搭建的一站式智能搜索业务开发平台,目前为包括淘宝、天猫在内的阿里集团核心业务提供搜索服务支持。通过内置各行业的查询语义理解、机器学习排序算法等能力,提供充分开放的引擎能力,助力开发者快速搭建智能搜索服务。Ope
学习大纲