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

互联网域名是什么意思aso优化的主要内容为

互联网域名是什么意思,aso优化的主要内容为,seo网课培训,wordpress更换域名更改数据库ThreadLocal是什么? ThreadLocal是线程本地存储机制,可以将数据缓存在线程内部。ThreadLocal存储的变量在线程内共享的,在线程间又是隔离的。 ThreadLocal实现原理? ThreadLocal的底层是ThreadLocalMap,每个Thread都…

在这里插入图片描述

ThreadLocal是什么?

ThreadLocal是线程本地存储机制,可以将数据缓存在线程内部。ThreadLocal存储的变量在线程内共享的,在线程间又是隔离的。

ThreadLocal实现原理?

ThreadLocal的底层是ThreadLocalMap,每个Thread都有一个ThreadLocalMap。
ThreadLocalMap存储的键值对,key就是ThreadLocal实例,value就是要缓存的值。
当创建ThreadLocal,set数据时调用的是ThreadLocalMap的set方法,set方法将ThreadLocal对象和缓存值存入Map。也就是说,想要存入的ThreadLocal中的数据实际上并没有存到ThreadLocal对象中去,而是以这个ThreadLocal实例作为key存到了当前线程中的ThreadLocalMap中去了,获取ThreadLocal的值时同样也是这个道理。这也就是为什么ThreadLocal可以实现线程之间隔离的原因了。

ThreadLocal的为什么会内存泄露

在每一个线程Thread对象中,都维护了一个ThreadLocalMap对象。ThreadLocalMap中又维护了一个k v 形式的Entry对象,key指向了当前ThreadLocal对象,value就是我们实际在ThreadLocal中存储的值。Entry中的key存放是ThreadLocal的弱引用。
因为ThreadLocalMap的key对它的引用是弱引用,将会在下一次gc被回收,那就会出现key变成null,如果这时value外部也没有强引用指向它,那么value就永远也访问不到了,按理也应该被GC回收,但是由于ThreadLocalMap.Entry对象还在强引用value,导致value无法被回收,这时「内存泄漏」就发生了,value成了一个永远也无法被访问,但是又无法被回收的对象。

为什么使用弱引用

假设key也用强引用指向当前ThreadLocal的话,那么如果我这时候写 t1 = null ,按理说下次GC时,应该要把堆内存的new ThreadLocal() 这个对象进行回收才对,但此时我的key如果设计成强引用,显然GC无法对它进行回收,因为key还强引用指向它。这就会造成内存泄漏,所以ThreadLocal存值时,key采用弱引用。key使用弱引用的特点就很明显了(只要是GC回收,不管内存够不够,都会回收弱引用指向的对象),当我写 t1 = null , 下次GC回收时,就可以将new ThreadLocal() 这个对象会被回收掉。

在 ThreadLocalMap 中的set/getEntry 方法中,会对 key 为 null(也即是 ThreadLocal 为 null )进行判断,如果为 null 的话,那么会把 value 置为 null 的.这就意味着使用完 ThreadLocal , CurrentThread 依然运行的前提下.就算忘记调用 remove 方法,弱引用比强引用可以多一层保障:弱引用的 ThreadLocal 会被回收.对应value在下一次 ThreadLocaIMap 调用 set/get/remove 中的任一方法的时候会被清除,从而避免内存泄漏.

避免内存泄漏

  • 将ThreadLocal设置为空之前,执行remove()方法,会将key为空的键值对清空 尽量将
  • ThreadLocal设置成static
  • 非必要尽量不要在ThreadLocal中放大对象
http://www.tj-hxxt.cn/news/63760.html

相关文章:

  • 盐山县招聘网站建设亚马逊跨境电商
  • 做卡贴质量好的网站网络营销的分类
  • 黄金网站app免费视频大全下载百度网盘app
  • 开网站建设公司开发网站多少钱
  • 怎么用ps做简单网站首页百度seo优化是什么
  • 东莞网站开发定制百度经验实用生活指南
  • 网站建设氵金手指下拉十三share群组链接分享
  • 大网站设计百度关键词优化是什么意思
  • 佛山城市建设工程有限公司官网整站优化
  • 如何自己做网站推广淘宝客校园推广的方式有哪些
  • 贵阳网站建设多少钱株洲seo优化首选
  • 如何把地图放到自己做的网站上域名站长工具
  • 专业做二手健身器材的是什么网站企业网站seo案例
  • 网站建设公司 电话销售没什么效果百度seo营销公司
  • 北京手机网站建设公司排名百度竞价推广效果怎么样
  • 家庭宽带 用443端口做网站seo课培训
  • wordpress放哪个文件夹seo外包方法
  • 包头网站建设推广seo编辑培训
  • 做好网站维护焊工培训内容
  • 伪静态规则wordpress广州seo和网络推广
  • 京东网站的设计特点关键词网站排名查询
  • java的大型网站建设小红书关键词优化
  • 销售网站制作怎么做优秀网页设计赏析
  • 旅游哪个网站最好自己怎么做关键词优化
  • 苏州建设银行官方网站郑州seo价格
  • 武汉做网站的上海seo
  • 微信号 网站模板网络营销文案策划都有哪些
  • 网站认证怎么做项目网
  • 淘宝客做网站链接seo怎么做优化排名
  • 网站建设在线商城沈阳沈河seo网站排名优化