当前位置:   article > 正文

Java程序执行过程中的 安全点、安全区域(内有JVM篇)_java的安全点

java的安全点

安全点(Safepoint)

1、概念:程序执行时并非在所有地方都能停顿下来开始GC,只有在特定的位置才能停顿下来开始GC,这些位置称为“安全点(Safepoint)

2、SafePoint的选择很重要,如果太少可能导致GC等待的时间太长(STW),如果太频繁可能导致运行时的性能问题。大部分指令的执行时间都非常短暂,通常会根据是否具有让程序长时间执行的特征为标准。比如:选择一些执行时间较长的指令作为SafePoint,如方法调用、循环跳转和异常跳转等。
在这里插入图片描述

3、如何在GC发生时,检查所有线程都跑到最近的安全点停顿下来呢?
(1)抢先式中断:(目前没有虚拟机采用了)
首先中断所有线程。如果还有线程不在安全点,就恢复线程,让线程跑到安全点。

(2)主动式中断:
设置一个中断标志,各个线程运行到SafePoint的时候主动轮询这个标志,如果中断标志为真,则将自己进行中断挂起。

安全区域(Safe Region)

1、

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/930965
推荐阅读
相关标签
  

闽ICP备14008679号