自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(2)
  • 收藏
  • 关注

原创 CMS垃圾收集器分析

CMS(Concurrent Mark Sweep)收集器是用于收集老年代的收集器,采用标记清除算法,下面这张图很好的解释了CMS的执行过程:一共可以划为4步:1)初始标记,这一步很快,只是标记一下GCROOTS中能直接关联到的对象 2)并发标记,这一步就是遍历对象图的过程,比较耗时,但CMS在这一步实现了并发 3)重新标记,CMS使用的是增量更新,较原始快照会慢一点,但是浮动垃圾会少一点 4)并发清除,可以注意到采用标记-清除不需要移动对象,我们可以做到并发,那他会有那些缺点呢?(先抛出一个问题。

2024-07-01 22:06:46 319 1

原创 ThreadLocal内存泄漏及弱引用设计原因

它是ThreadLocal中一个静态内部类,它就是一个Map结构,底层放的元素是使用ThreadLocal作为key,变量作为value的Entry。那么假设我们此时已经使用完了ThreadLocal,那么ThreadLocal会被回收掉,但注意到Thread到Entry是存在着一条生命周期跟随线程的引用链的。Map的创建时机为第一次调用set()函数时,会判断getMap()是否为空,如果为空则会创建ThreadLocalMap并与线程绑定。此时我们就可以在线程里安全的使用分配给线程的连接。

2024-06-26 18:40:33 405

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除