当前位置: 首页 > news >正文

多线程并发篇---第十二篇

系列文章目录


文章目录

  • 系列文章目录
  • 一、说说ThreadLocal原理?
  • 二、线程池原理知道吗?以及核心参数
  • 三、线程池的拒绝策略有哪些?


一、说说ThreadLocal原理?

hreadLocal可以理解为线程本地变量,他会在每个线程都创建一个副本,那么在线程之间访问内部
副本变量就行了,做到了线程之间互相隔离,相比于synchronized的做法是用空间来换时间。
ThreadLocal有一个静态内部类ThreadLocalMap,ThreadLocalMap又包含了一个Entry数组,
Entry本身是一个弱引用,他的key是指向ThreadLocal的弱引用,Entry具备了保存key value键值对
的能力。
弱引用的目的是为了防止内存泄露,如果是强引用那么ThreadLocal对象除非线程结束否则始终无
法被回收,弱引用则会在下一次GC的时候被回收。
但是这样还是会存在内存泄露的问题,假如key和ThreadLocal对象被回收之后,entry中就存在key
为null,但是value有值的entry对象,但是永远没办法被访问到,同样除非线程结束运行。
但是只要ThreadLocal使用恰当,在使用完之后调用remove方法删除Entry对象&#

http://www.lryc.cn/news/193398.html

相关文章:

  • P7537 [COCI2016-2017#4] Rima
  • SwiftUI Swift CoreData 计算某实体某属性总和
  • docker安装skyWalking笔记
  • 【Codeforces】 CF1097G Vladislav and a Great Legend
  • 力扣每日一题36:有效的数独
  • 钉钉数字校园小程序开发:开启智慧教育新时代
  • 数据结构与算法--其他算法
  • 矩阵键盘行列扫描
  • unity 实现拖动ui填空,并判断对错
  • 《机器学习》第5章 神经网络
  • FPGA project : flash_erasure
  • AC修炼计划(AtCoder Regular Contest 166)
  • Android---Android 是如何通过 Activity 进行交互的
  • 【论文解读】单目3D目标检测 MonoCon(AAAI2022)
  • Angular知识点系列(5)-每天10个小知识
  • 基于海洋捕食者优化的BP神经网络(分类应用) - 附代码
  • Lift, Splat, Shoot图像BEV安装与模型详解
  • MySQL简介
  • php代码优化---本人的例子
  • EMC Unity存储(VNXe) service Mode和Normal Mode的一些说明
  • 基于全景运动感知的飞行视觉脑关节神经网络全方位碰撞检测
  • Java 继承与实现
  • Unity 3D基础——计算两个物体之间的距离
  • css常见问题处理
  • 蓝桥杯(迷宫,C++)
  • Python爬虫selenium安装谷歌驱动解决办法
  • 生信教程:使用拓扑加权探索基因组进化(3)
  • React js原生 详解 HTML 拖放 API(鼠标拖放功能)
  • LiveMedia视频中间件如何与第三方系统实现事件录像关联
  • 机器学习-有监督算法-决策树和支持向量机