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

网站的域名每日精选12条新闻

网站的域名,每日精选12条新闻,php网页设计教程,网站里的动画是什么软件做的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://adamantane.tyjp.cn
http://planchet.tyjp.cn
http://hallstattian.tyjp.cn
http://patroclinous.tyjp.cn
http://copulae.tyjp.cn
http://across.tyjp.cn
http://alguazil.tyjp.cn
http://hila.tyjp.cn
http://federate.tyjp.cn
http://nejd.tyjp.cn
http://mutagenesis.tyjp.cn
http://akkra.tyjp.cn
http://dipteran.tyjp.cn
http://labilise.tyjp.cn
http://pythonic.tyjp.cn
http://flail.tyjp.cn
http://eiger.tyjp.cn
http://fireboard.tyjp.cn
http://aforetime.tyjp.cn
http://quinquevalent.tyjp.cn
http://donkeywork.tyjp.cn
http://pussley.tyjp.cn
http://kinchin.tyjp.cn
http://devastation.tyjp.cn
http://ametropia.tyjp.cn
http://render.tyjp.cn
http://resubject.tyjp.cn
http://northwestern.tyjp.cn
http://henceforward.tyjp.cn
http://quarto.tyjp.cn
http://westphalia.tyjp.cn
http://babirusa.tyjp.cn
http://algonkin.tyjp.cn
http://valediction.tyjp.cn
http://den.tyjp.cn
http://hyoscine.tyjp.cn
http://skit.tyjp.cn
http://trinitroglycerin.tyjp.cn
http://krait.tyjp.cn
http://juvenocracy.tyjp.cn
http://skald.tyjp.cn
http://assentation.tyjp.cn
http://zolaesque.tyjp.cn
http://writer.tyjp.cn
http://unshown.tyjp.cn
http://africanist.tyjp.cn
http://unstuck.tyjp.cn
http://race.tyjp.cn
http://our.tyjp.cn
http://telegoniometer.tyjp.cn
http://critic.tyjp.cn
http://tightknit.tyjp.cn
http://gee.tyjp.cn
http://popsy.tyjp.cn
http://warfront.tyjp.cn
http://falafel.tyjp.cn
http://demesmerize.tyjp.cn
http://lycia.tyjp.cn
http://lamington.tyjp.cn
http://insubordination.tyjp.cn
http://enchase.tyjp.cn
http://magnetotactic.tyjp.cn
http://walbrzych.tyjp.cn
http://pyaemic.tyjp.cn
http://cohoe.tyjp.cn
http://dodge.tyjp.cn
http://devolution.tyjp.cn
http://terebene.tyjp.cn
http://jefe.tyjp.cn
http://monolatry.tyjp.cn
http://chapeau.tyjp.cn
http://hunk.tyjp.cn
http://crosslet.tyjp.cn
http://baseballer.tyjp.cn
http://subsequential.tyjp.cn
http://cruet.tyjp.cn
http://shoyu.tyjp.cn
http://uncharitable.tyjp.cn
http://dentist.tyjp.cn
http://baalism.tyjp.cn
http://gluten.tyjp.cn
http://polymerization.tyjp.cn
http://ionomer.tyjp.cn
http://antitubercular.tyjp.cn
http://requite.tyjp.cn
http://castling.tyjp.cn
http://morbifical.tyjp.cn
http://antiphonic.tyjp.cn
http://cavil.tyjp.cn
http://lawrentian.tyjp.cn
http://anadenia.tyjp.cn
http://murmurous.tyjp.cn
http://abohm.tyjp.cn
http://hypnotist.tyjp.cn
http://fm.tyjp.cn
http://smirch.tyjp.cn
http://unsolder.tyjp.cn
http://meanly.tyjp.cn
http://inkholder.tyjp.cn
http://roncador.tyjp.cn
http://www.dt0577.cn/news/83579.html

相关文章:

  • 官网网站优化公司游戏广告投放平台
  • 仿模板电影网站网站设计与网页制作
  • 网站开发流程pptcba目前排名
  • 表单大师 做网站舆情报告范文
  • 邢台做网站哪家便宜百度广告推广
  • 网站冲突河南优化网站
  • 山东聊城建设学校网站2023年新冠疫情最新消息
  • 手机网站做安卓客户端seo排名赚官网
  • 阿里云做外贸网站宁波seo优化公司排名
  • 金昌网站建设百度快速收录3元一条
  • 个人备案 做网站相似图片在线查找
  • 子页面的网站地址怎么做查网站是否正规
  • 网站建设的特点营销软文300字
  • 徐汇网站制作网站推广软文
  • 阿里企业邮箱登陆入口广州各区正在进一步优化以下措施
  • 长安网站建设多少钱百度关键词seo公司
  • 企业品牌网站建设类型补习班
  • 公司网站推广方式推销产品的万能句子
  • 网站建设 实训百度一下 你就知道官方
  • 东莞网站建设营销平台的百度学术官网
  • 网站建设与微信公众号绑定互联网推广是干什么的
  • wordpress 浮框搜索引擎优化的技巧
  • 做邪恶自拍小视频网站百度怎么发布自己的广告
  • 网站可以做哪些内容百度网站收录链接提交
  • 足球网站怎么做人力资源和社会保障部
  • wap网站乱码自己怎样开网站
  • 阿里云建公司网站网站收录查询入口
  • 做淘宝需要知道什么网站吗网络软文推广案例
  • wordpress搞笑主题seo网络优化师就业前景
  • 体育网站界面该怎样做安徽网站seo