1:什么是stop the world?
在gc事件发生过程中,会产生应用的停顿,停顿产生时整个应用程序线程都会被暂停,没有任何响应,有点像卡死的感觉,这个停顿称为STW
2:为什么gc时要stop the world
原因很简单,因为java进行垃圾回收时使用可达性分析,从GC Root向下判断对象是否有引用,如果不把所有线程进入safe points并阻塞起来就会出现对象上一秒没有引用被删除,后一秒又出现引用,导致错误的产生
本文解释了在Java中垃圾回收(GC)期间为何需要停止整个应用程序(Stop-The-World, STW)的原因。GC使用可达性分析来确定对象是否可以被回收。如果不暂停所有线程,可能会导致对象状态不一致,造成误判。因此,在GC执行时让所有线程暂停以确保对象的一致性和正确性至关重要。
在gc事件发生过程中,会产生应用的停顿,停顿产生时整个应用程序线程都会被暂停,没有任何响应,有点像卡死的感觉,这个停顿称为STW
原因很简单,因为java进行垃圾回收时使用可达性分析,从GC Root向下判断对象是否有引用,如果不把所有线程进入safe points并阻塞起来就会出现对象上一秒没有引用被删除,后一秒又出现引用,导致错误的产生
2588
1121
2131
577

被折叠的 条评论
为什么被折叠?