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

网站名字设计望城做网站

网站名字设计,望城做网站,几年做啥网站能致富,辽宁建设工程信息网业绩认定首先我们要先了解什么是泄漏问题和什么是内存溢出 内存泄漏表示程序员申请了内存,但是该内存一直无法被释放 内存溢出表示申请内存不足,就会报错 为何引发内存泄漏问题 因为每个线程都有自己独立的ThreadLocalMap对象,key为ThreadLocal&…

首先我们要先了解什么是泄漏问题和什么是内存溢出
内存泄漏表示程序员申请了内存,但是该内存一直无法被释放
内存溢出表示申请内存不足,就会报错

为何引发内存泄漏问题

  • 因为每个线程都有自己独立的ThreadLocalMap对象,key为ThreadLocal,value为变量值。Key为ThreadLocal作为Entry对象的key,是弱引用,当ThreadLocal指向null的时候,Entry对象中的key变为null,该对象一直无法被垃圾回收机制回收,一直占用到了系统内存,有可能发生内存泄漏的问题

接下来我来证实这一观点

public class ThreadLocalTest {public static void main(String[] args) {ThreadLocal<String> threadLocal = new ThreadLocal<>();threadLocal.set("donglin");threadLocal = null;Thread thread = Thread.currentThread();System.out.println(thread);}
}

我们进行debug,发现threadlocal里面还有值,并且还有引用
在这里插入图片描述
线程中Threadlocal设置为null(也可以理解为该线程方法执行完毕了),会断开主线程和堆内存之间的引用链,当GC回收的时候,不会回收堆内存,因为还有一条指向堆内存的引用链,从而会导致内存泄漏
在这里插入图片描述
那如何解决这个ThreadLocalMap引用链呢
使用revome方法

public class ThreadLocalTest {public static void main(String[] args) {ThreadLocal<String> threadLocal = new ThreadLocal<>();threadLocal.set("donglin");//ThreadLocalMap与内存中的ThreadLocal断开引用threadLocal.remove();//threadLocal与堆内存中的ThreadLocal断开引用threadLocal = null;//GCRoot引用链就会发现ThreadLocal,没有人引用,就会清理掉该对象,避免内存泄漏问题Thread thread = Thread.currentThread();System.out.println(thread);}
}

为啥要使用弱引用而不使用强引用

当function01方法执行完毕后,栈帧销毁强引用 tl 也就没有了。但此时线程的ThreadLocalMap里某个entry的key引用还指向这个对象
若这个key引用是强引用,就会导致key指向的ThreadLocal对象及v指向的对象不能被gc回收,造成内存泄漏;
若这个key引用是弱引用就大概率会减少内存泄漏的问题(还有一个key为null的雷)。使用弱引用,就可以使ThreadLocal对象在方法执行完毕后顺利被回收且Entry的key引用指向为null。
在这里插入图片描述
此后我们调用get,set或remove方法时,就会尝试删除key为null的entry,可以释放value对象所占用的内存。

http://www.yayakq.cn/news/837165/

相关文章:

  • 网站设计 字体企业的网站建设文章
  • 设计师网站设计做外贸的免费网站
  • 交通局网站模板快手刷赞网站推广软件
  • 建设部勘察设计网站网站负责人姓名
  • 建站公司前景无锡市梁溪区建设局网站
  • 网站空间和域名绑定网站架构设计图怎么做
  • 徐州网站建设价格网站建设成立领导小组
  • 中国建设银行网站医保青岛品牌策划青岛博采网络好
  • 网站开发课程教学目标小说网站代理
  • 克州seo整站排名最好用的建站模板
  • 做网站月度总结网站建设策划书范文提纲
  • 英文网站建设维护视频网站中滑动列表怎么做
  • 江山有做网站开发吗wordPress回复表情
  • 如何做泰国网站wordpress安装不了插件吗
  • 南宁网站建设推广优化长乐住房和城乡建设局网站
  • 网站建设的品牌河北 石家庄 网站建设
  • 福州seo网站优化怎么搭建一个自己的网站
  • 贵阳网站建设做搜狗手机网站优化软
  • 昆明营销型网站建设开个网站平台要多少钱
  • 营销型网站是啥意思灰色词快速上排名
  • 南京网站优化方案网络推广公司利润如何
  • 如何做网站收徒弟网站网站栏目代码
  • 长荣建设深圳公司网站枣庄专业做网站
  • 个人网站如何做即时支付甘肃建设住房厅网站首页
  • 兰州网站搜索优化帐号售卖网站建设
  • 手机端网站搭建做羞羞的事情的网站
  • html网页设计网站企业标准网上备案网站
  • 六安市建设网站市场信息价百度seo外链推广教程
  • 做粘土网站张掖建设局网站
  • seo专员是做什么的北京网站设计制作关键词优化微信小程序开发推广