最近有点懒散,没什么比较有深度的产出。刚好想重新研读一下JUC
线程池的源码实现,在此之前先深入了解一下Java
中的线程实现,包括线程的生命周期、状态切换以及线程的上下文切换等等。编写本文的时候,使用的JDK
版本是11。
今天(2020-01-18
)在编写Netty
相关代码的时候,从Netty
源码中的ThreadDeathWatcher
和GlobalEventExecutor
追溯到两个和线程上下文类加载器ContextClassLoader
内存泄漏相关的Issue
:
两个Issue
分别是两位前辈在2017-12
的时候提出的,描述的是同一类问题,最后被Netty
的负责人采纳,并且修复了对应的问题从而关闭了Issue
。这里基于这两个Issue
描述的内容,对ContextClassLoader
内存泄漏隐患做一次复盘。