安全点和安全区域 安全点: 程序执行时并非在所有地方都能停顿下来开始GC,只有在特定的位置才 能停顿下来开始GC,这些位置称为“安全点(Safepoint) ”。 Safe Point的选择很重要,如果太少可能导致GC等待的时间太长,如果 太频繁可能导致运行时的性能问题。大部分指令的执行时间都非常短暂, 通常会根据“是否具有让程序长时间执行的特征”为标准。比如:选择一 些执行时间较长的指令作为Safe Point,如方法调用、循环跳转和异常 跳转等。 抢先式中断:( 目前没有虚拟机采用了) 首先中断所有线程。如果还有线程不在安全点,就恢复线程,让线程跑到安全点。 主动式中断: 设置—个...