ThreadLocal 内存泄露的实例分析
前言
之前写了一篇深入分析 ThreadLocal 内存泄漏问题是从理论上分析ThreadLocal
的内存泄漏问题,这一篇文章我们来分析一下实际的内存泄漏案例。分析问题的过程比结果更重要,理论结合实际才能彻底分析出内存泄漏的原因。
案例与分析
问题背景
在 Tomcat 中,下面的代码都在 webapp 内,会导致WebappClassLoader
泄漏,无法被回收。
public class MyCounter { private int count = 0; public void increment() { count++; } public int getCount() { return count;
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
【Getty】Java NIO框架设计与实现
前言 Getty是我为了学习 Java NIO 所写的一个 NIO 框架,实现过程中参考了 Netty 的设计,同时使用 Groovy 来实现。虽然只是玩具,但是麻雀虽小,五脏俱全,在实现过程中,不仅熟悉了 NIO 的使用,还借鉴了很多 Netty 的设计思想,提升了自己的编码和设计能力。 至于为什么用 Groovy 来写,因为我刚学了 Groovy,正好拿来练手,加上 Groovy 是兼容 Java 的,所以只是语法上的差别,底层实现还是基于 Java API的。 Getty 的核心代码行数不超过 500 行,一方面得益于 Groovy 简洁的语法,另一方面是因为我只实现了核心的逻辑,最复杂的其实是解码器实现。脚手架容易搭,摩天大楼哪有那么容易盖,但用来学习 NIO 足以。 线程模型 Getty 使用的是 Reactor 多线程模型 有专门
- 下一篇
Java总结 - ArrayDeque
这次来说一下ArrayDeque,我们先看一下他的类关系图,其中忽略掉了一些标记性接口 我们看一下类的定义public class ArrayDeque<E> extends AbstractCollection<E> implements Deque<E>, Cloneable, Serializable {...} 从中我们可以看到他实现了Deque接口,那么Deque是实现了Queue<E>接口,如下是两个接口中的部分方法Queue: boolean add(E e); boolean offer(E e); E remove(); E poll(); E element(); E peek(); Deq
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS8安装Docker,最新的服务器搭配容器使用
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS8编译安装MySQL8.0.19
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2更换Tomcat为Jetty,小型站点的福音