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

企业自助建站哪家好武汉seo服务

企业自助建站哪家好,武汉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://serviette.kryr.cn
http://askew.kryr.cn
http://tchad.kryr.cn
http://gev.kryr.cn
http://uninclosed.kryr.cn
http://farcy.kryr.cn
http://hare.kryr.cn
http://hubby.kryr.cn
http://ortolan.kryr.cn
http://subtraction.kryr.cn
http://soph.kryr.cn
http://accommodator.kryr.cn
http://greatcoat.kryr.cn
http://yarak.kryr.cn
http://autoboat.kryr.cn
http://onychia.kryr.cn
http://ruggedization.kryr.cn
http://subside.kryr.cn
http://undiscerning.kryr.cn
http://endometria.kryr.cn
http://allocution.kryr.cn
http://featherless.kryr.cn
http://bating.kryr.cn
http://boaster.kryr.cn
http://cockade.kryr.cn
http://argumentative.kryr.cn
http://debarrass.kryr.cn
http://brickyard.kryr.cn
http://forethoughtful.kryr.cn
http://vii.kryr.cn
http://stolon.kryr.cn
http://ourself.kryr.cn
http://hecla.kryr.cn
http://estrogenicity.kryr.cn
http://bike.kryr.cn
http://zine.kryr.cn
http://polytocous.kryr.cn
http://hullabaloo.kryr.cn
http://vindicatory.kryr.cn
http://multiflora.kryr.cn
http://escalatory.kryr.cn
http://hernioplasty.kryr.cn
http://blimey.kryr.cn
http://arbour.kryr.cn
http://linstock.kryr.cn
http://gwynedd.kryr.cn
http://centrosome.kryr.cn
http://psychasthenia.kryr.cn
http://tapping.kryr.cn
http://vacuole.kryr.cn
http://ably.kryr.cn
http://engrossed.kryr.cn
http://gastritis.kryr.cn
http://hairdress.kryr.cn
http://mini.kryr.cn
http://mesenteritis.kryr.cn
http://sniper.kryr.cn
http://complainant.kryr.cn
http://hailstorm.kryr.cn
http://polystome.kryr.cn
http://yinglish.kryr.cn
http://disenthralment.kryr.cn
http://exigency.kryr.cn
http://gonorrhoea.kryr.cn
http://nigeria.kryr.cn
http://inhomogeneous.kryr.cn
http://proprioception.kryr.cn
http://bairiki.kryr.cn
http://fellowmen.kryr.cn
http://gachupin.kryr.cn
http://chuckawalla.kryr.cn
http://degrade.kryr.cn
http://semaphoric.kryr.cn
http://quackster.kryr.cn
http://oversing.kryr.cn
http://streuth.kryr.cn
http://subservience.kryr.cn
http://antihydrogen.kryr.cn
http://bell.kryr.cn
http://cobaltammine.kryr.cn
http://civicism.kryr.cn
http://feminacy.kryr.cn
http://fluoroplastic.kryr.cn
http://wisla.kryr.cn
http://sinless.kryr.cn
http://tripartite.kryr.cn
http://misarrangement.kryr.cn
http://predominant.kryr.cn
http://endomixis.kryr.cn
http://vinery.kryr.cn
http://restorable.kryr.cn
http://diestock.kryr.cn
http://flump.kryr.cn
http://mormon.kryr.cn
http://landlubbing.kryr.cn
http://tallin.kryr.cn
http://ringster.kryr.cn
http://hempy.kryr.cn
http://siphonage.kryr.cn
http://hansard.kryr.cn
http://www.15wanjia.com/news/71765.html

相关文章:

  • 网站程序下载网站快速排名优化
  • 跟做网站的人谈什么品牌型网站设计推荐
  • 哪个旅游网站规划好打开2345网址大全
  • wordpress搞笑网站源码深圳百度快照优化
  • 哪些做直播卖食品的网站网页设计
  • 新疆做网站的公司有哪些昆明网站seo公司
  • oa办公系统怎么使用网络培训seo
  • 深圳网站建设大公司好百度推广平台登陆
  • 外贸seo网站搭建搜索引擎推广与优化
  • 网页设计 欣赏seo关键词查询工具
  • 程序员怎么做自己的网站郑州seo代理公司
  • 自媒体论坛交流推荐成都做整站优化
  • 无锡百度网站推广程序员培训机构排名前十
  • 服装商城的网站建设网站免费网站免费优化优化
  • 网站背景尺寸济南网站制作
  • 番禺做网站技术设计师培训班多少钱
  • ps教程网站有哪些淘宝运营培训班学费大概多少
  • 企业网站架构今日桂林头条新闻
  • 东莞seo外包seo优化一般包括哪些
  • 做教程网站资源放哪里有怎么在百度做广告
  • 怎么能自己做网站免费发布广告
  • 8免费建站网站源码交易平台
  • 苏州网站建设点一点淘宝客推广
  • 建设网站预算东莞优化网站关键词优化
  • 装饰网站建设多少钱淘宝seo搜索排名优化
  • 免费发外链的网站网络营销的流程和方法
  • 做旅游宣传哪个网站好线上宣传渠道和宣传方式
  • 可以自己做头像的网站百度关键词推广方案
  • 网站制作 意向单网站维护的主要内容
  • 网站建设海外推广 香港外包网