image.png

image.png

GC线程工作机制

image.png

CMS

  • 初始标记暂停阶段 - 第1个暂停是将可从根直接访问的对象和堆中的其他地方标记为活动对象
  • 并发跟踪阶段(并发标记、并发预清理、可中止的并发预清理)- 该阶段应用程序线程和GC线程同时运行。可能造成对象的关系发生变化
  • 重新标记暂停阶段 - 第2个暂停查找由于应用程序线程更新对象中的引用而被并发跟踪遗漏的对象
  • *通常在一个并发标记阶段中会发生许多次要收集,应用程序线程在次要收集期间会停止
  • 并发清理阶段(Concurrent Sweep):并发清理阶段的主要工作是清理所有未被标记的死亡对象,回收被占用的空间
  • 并发重置阶段(Concurrent Reset):并发重置阶段,将 清理并恢复在CMS GC过程中的各种状态,重新初始化CMS相关数据结构 ,为下一个垃圾收集周期做好准备


    image.png