首页
Python
Java
前端
数据库
Linux
Chatgpt专题
开发者工具箱
theadlocal专题
Theadlocal是什么?有哪些使用场景?底层实现是什么?
首先在线程里有一个ThreadlocalMap这个变量,在我们调用threadlocal.set()方法的时候其实就是操作当前线程的ThreadlocalMap,将threadlocal放到key上将threadlocal的值存入value中。 这是set方法的具体实现。 需要注意的是,ThreadLocalMap并不是放在ThreadLocal当中的,而是放在当前Thread对象中
阅读更多...
记一次TheadLocal使用方式不正确导致内存泄漏问题的排查和修复过程
一、背景 一个部门其他同事的上线了很久的项目近期频繁的内存溢出——几乎每天内存溢出一次,而且频率越来越高。在添加了进程守护之后,虽然可以在内存溢出后自动重启,但并没有解决内存溢出的问题。不甘其扰之后,决定仔细排查导致内存溢出的根本原因。 二、排查过程 在将内存溢出的dump文件导出之后,通过Jprofiler进行分析,发现HashMap对象占用的内存很大,而且一直在增加。 就在代
阅读更多...