Thradlocal底层原理

news2024/11/25 3:35:11

java引用:强软弱虚

软引用空间不足时会被回收

软引用非常适合做缓存

弱引用:只要有垃圾回收,就会被回收

虚引用回不回收都拿不到   他只有一个作用,管理直接内存  也是只要有垃圾回收就会被回收

ThreadLocal

Spring事务,@Transactional控制conection

tl.set其实是以Treadlocal为key   放入的对象为value 构造的一个map

因为是以当前线程为key来放的value  所以肯定不会发生弄串的问题    是一对一的

每个线程都有自己的一个兜 都往自己兜里放东西

 Treadlocal使用了弱引用  

为什么用弱引用:用强引用容易导致内存泄漏  弱引用方便垃圾处理器回收

 只要tl.set指向空   threadlocal就会被回收掉    

在每次get 和set的时候Treadlocal会把treadlocalMap里面的null键记录全部清除掉  但是依然需要remove

用弱引用消除了Threadlocal这个key的内存泄漏,  用remove消除了该条Map记录的内存泄漏

如果是线程池,用完线程1之后应该首先清理掉TreadLocal 与 TreadlocalMap中的数据

 虚是专门用来管理对外内存的   

软  缓存  弱 防止一些关于Map的内存泄漏  Treadlocal里面防止内存泄漏  

Teadlocal用在什么地方?

Spring关于transactional的处理   MyBatis关于分页的场景

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/514050.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【职场新人备忘录】新人职场生存指南:快速适应、持续成长和个人提升

新人职场生存指南:快速适应、持续成长和个人提升 引言 职场对于新人来说充满了新的挑战和机遇。作为一名新人,如何在职场中快速适应、获得成长和提升自己是至关重要的技能。本备忘录旨在为职场新人提供实用的职场tips,帮助他们在职场中取得…

Ubuntu 20.04 安装 mysql 并配置远程访问

文章目录 一、使用 apt-get 安装 mysql 服务二、初始化 mysql 数据库管理员用户密码三、配置远程访问 一、使用 apt-get 安装 mysql 服务 # 更新软件源 apt-get install update# 安装mysql服务 apt-get install mysql-server# 使用mysqladmin工具查看mysql版本 mysqladmin --v…

Set和Map学习笔记

参考链接:https://blog.csdn.net/weixin_43359799/article/details/123131917 Set 集合,存储的是value值,以对象形式存储,并且不会存储重复的值,可以用来数组去重。 const s new Set() [1, 2, 3, 4, 3, 2, 1].forEach(x > s.add(x)) c…

景区户外剧本杀小程序冲关软件

景区户外剧本杀小程序具有以下几个方面的市场前景: 旅游市场需求增加:随着人们对于旅游方式的多样化需求增加,景区户外剧本杀作为一种互动性强、参与感强的旅游体验项目,将会得到越来越多游客的喜爱和关注。 移动互联网应…

对称加密和非对称加密的区别

两个人有不想让第三者知道的事情,可以找一个私密的空间去聊。而互联网本身是一个开放的体系,双方在交换数据的时候会经历大量的第三者——公司的防火墙、ISP 的路由器,还有可能有黑客抓取数据。那么这个时候如果张三和李四有私密的话想聊&…

游戏是怎么做推广的

游戏是怎么做推广的 大家好我是艾西,今天是我们的闲聊日记,大家都知道我是一直做游戏相关的事情,不管是开发、运营还是资源渠道等都是不可少的因素,那么在这长时间的积累下还是有一些直接的心得以及方式方法的。今天我们主要聊的…

企业电子招标采购系统源代码Spring Boot + 二次开发 + 前后端分离

项目说明 随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以及…

java计算机二级部分知识点

参考来源 java计算机二级内容总结 百度图片 C/C版数据结构之树<一> 线性结构 如果一个数据满足下面两个条件&#xff1a;1&#xff09;有且只有一个根节点&#xff1b;2&#xff09;每一个节点最多有一个前件&#xff0c;也最多有一个后件&#xff0c;则称该数据为线性…

图神经网络入门:理论与实践

图神经网络&#xff08;Graph Neural Networks&#xff0c;GNNs&#xff09;是一种针对图数据进行建模和处理的深度学习模型&#xff0c;其具有在推理和预测具有高度关联和复杂结构的数据中具有优势等特点。与传统的神经网络不同&#xff0c;GNNs 能够自适应地根据图结构进行信…

I/O通道

一、设备控制器&#xff08;I/O接口&#xff09;&#xff1a; 功能&#xff1a;控制一个或多个I/O设备&#xff0c;以实现I/O设备和计算机之间的数据交换。是CPU与I/O设备之间的接口&#xff0c;接收从CPU发来的命令&#xff0c;去控制I/O设备工作&#xff0c;使CPU能够从繁杂…

【零基础学web前端】初识html,html结构,html常见标签,图片标签,超链接标签

前言: 大家好,我是良辰丫,今天我们就开始进入前端知识的学习&#x1f49e;&#x1f49e; &#x1f9d1;个人主页&#xff1a;良辰针不戳 &#x1f4d6;所属专栏&#xff1a;零基础学web前端 &#x1f34e;励志语句&#xff1a;生活也许会让我们遍体鳞伤&#xff0c;但最终这些伤…

win10自带dll修复以及多种dll修复方法分享

修复DLL文件是解决Windows系统中发生的许多问题的重要步骤之一。在Windows 10中&#xff0c;自带了一些工具和功能来修复损坏的DLL文件。本文将讨论Windows 10自带的DLL修复工具以及其他常见的DLL修复方法。 一.Windows 10自带的DLL修复工具 Windows 10自带了许多工具和功能来…

bash简单常见用法

bash新建自定义数组 myArray() for ((i 0 ; i < 5 ; i )) do myArray[$i]"AAAA{$i}DD" done echo ${myArray[]} #输出结果是AAAA{0}DD AAAA{1}DD AAAA{2}DD AAAA{3}DD AAAA{4}DD 提取文件名成功 projects"D:/Project/Program/IDEAWorkspace/myauto/automati…

x509证书中的Issuer和Subject

在x509标准中的位置 Issuer 颁发者字段标识已签署和颁发证书的实体。 颁发者字段必须包含一个非空的可分辨名称 (DN)。 颁发者字段定义为 X.501 类型名称 [X.501]。 名称由以下 ASN.1 结构定义&#xff1a; Name 描述了一个由属性组成的分层名称&#xff0c;例如国家名称&…

利用Python+selenium技术,实现浏览器基本操作详解,代码有详细注释

首先&#xff0c;需要安装selenium库和对应的浏览器驱动程序。以Chrome浏览器为例&#xff0c;可以使用以下命令安装selenium和chromedriver&#xff1a; pip install selenium然后&#xff0c;需要下载对应版本的chromedriver&#xff0c;并将其添加到环境变量中。下载地址&a…

关于DSP28335设置内存分配设置堆栈笔记

关于DSP28335设置内存分 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 关于DSP28335设置内存分前言一、设置堆栈这里主…

【头歌】二叉树的顺序存储及基本操作

第1关&#xff1a;树和二叉树基本概念 任务描述 本关任务&#xff1a;根据所学树和二叉树的基本概念等相关知识&#xff0c;完成右侧的选择题。 相关知识 树的定义 从数据结构角度看&#xff0c;树包含n&#xff08;n≥0&#xff09;个结点&#xff0c;当n0时&#xff0c;…

thinkphp6-配置设置与获取,Thinkphp6自定义配置文件以及调用(config文件夹下的配置)

环境变量 设置环境变量 /.env [DATABASE] USERNAME root PASSWORD 123456 获取环境变量 app/controller/Index.php <?php namespace app\controller;use app\BaseController; use think\facade\Env;class Index extends BaseController {public function index(){$usern…

IO模型的分类以及各个io模型之间的优劣势

本文主要讲解bio以及nio的一些问题和知识&#xff0c;会对aio进行简单讲解&#xff0c;但不会深入剖析 我们说熟知的io模型有哪些呢&#xff1f; 同步阻塞io同步非阻塞io同步多路复用异步非阻塞io java的io本身是不具有真正的io操作能力的&#xff0c;当调用io操作时&#x…

基于ArcGIS:GIS空间分析复习-理论概念+案例分析

目录 01 第一章 1.1 GIS空间分析的概念 1.2 GIS空间分析的研究对象、研究目标 1.3 研究目标是&#xff1a;认知、解释、预报、调控。 1.4 道路拓宽案例分析 1.5 GIS空间分析的核心问题 02 第二章 2.1 空间查询的概念、空间量算的概念 2.2 函数距离的概念 2.3 空间查询…