STW并不会只发生在内存回收的时候。现在程序员这么卷,碰到几次 safepoint的问题几率也是比较大的。 当发生GC时,用户线程必须全部停下来,才可以进行垃圾回收,这个状态我们可以认为JVM是安全的(safe),整个堆的状态是稳定的。 如果在GC 前,有线程迟迟进入不了safepoint,那么整个JVM都在等待这个阻塞的线程,造成了整体GC的时间变长。
Proudly powered by WordPress