前言
在平时实际工作中,其实接触 JVM 的机会比较少,而学习 JVM 时,大部分时候也是看书或者网上看博客教程,然而在学习过程中,经常会碰到很多陌生的名词,难以理解,尤其是在垃圾回收器中,因此本文找了几个和垃圾回收器相关知识中联系比较紧密的名词解释一下。
Stop The World
「Stop The World」 简称 STW,它指的是程序在运行过程中,在发生 GC 的过程中,会让所有的用户线程都暂停下来,此时对应用程序而言,相当于整个程序都停止运行了,因此称之为 Stop The World。STW 这个过程是 JVM 在后台自动发起和自动完成的,在用户不可见的情况下,将所有应用程序停顿下来。
尽管目前存在很多垃圾回收器,并且新的垃圾回收器的效率越来越高,但是目前为止,所有的垃圾回收器都无法避免 STW,即使是号称低延时的 「CMS」 和 「G1」 垃圾回收器,也存在 STW。这是因为在标记阶段,使用可达性分析算法进行分析时,整个应用程序的数据都应该处于「一致性视图」当中,这是为了保证可达性分析算法的准确性,因此需要暂停所有的用户线程。
显然 STW 对应用程序十分不友好,「STW 的时