JVM知识——安全点

安全点是JVM要准备进行垃圾回收时,选定一些特定的位置,当应用程序线程执行到这些位置时,安全的先暂停下来,以便JVM执行GC线程进行垃圾回收。

JVM在字节码指令中会选取一些指令作为安全点,安全点的选取一般是循环结束、方法调用前后、异常跳转等指令位置。

如果线程长时间无法到达安全点,如线程处于sleep休眠或blocked阻塞状态,为了处理这种情况,JVM引入了安全区域的概念,安全区域是指在一段代码片段中,引用关系不会发生改变,因此只要线程处在这个区域中,外部如果要进行垃圾回收它都是安全的。当应用程序线程进入安全区域时,会标识自己已经进入了安全区域,这样GC线程就不用考虑我了,我不会给你造成任何麻烦,当此线程要离开安全区域时,会检查GC垃圾回收是否已经完成,如果完成了,则继续向下执行,否则,就必须等待,直到收到可以离开安全区域的信号为止。

相关推荐
太理摆烂哥15 小时前
C++之异常
java·开发语言·jvm
简简单单OnlineZuozuo17 小时前
对话式AI的安全和治理模式
人工智能·深度学习·安全·图像识别·banana
简简单单OnlineZuozuo18 小时前
视觉模型的偏见和捷径测试:来自真实世界实验的实用测试套件
人工智能·深度学习·安全·图像识别·banana
暗流者19 小时前
ctf wiki中kernel pwn 学习编译内核(2026年最新版)
学习·安全·网络安全·pwn
pwn蒸鱼20 小时前
buuctf中的wustctf2020_getshell(栈溢出)
安全
shdwak....sad1 天前
DeepAudit AI多智能体代码审计项目学习与解读(一)
人工智能·安全
pwn蒸鱼1 天前
buuctf中的pwn2_sctf_2016(libc泄露+栈溢出)
linux·安全
落叶_Jim1 天前
网站出现“不安全“红色警告怎么办?5步消除浏览器拦截
安全·https·ssl
qunaa01011 天前
YOLOV8与CGAFusion融合实现建筑工人头部安全装备检测
安全·yolo·目标跟踪
ss2731 天前
线程安全三剑客:无状态、加锁与CAS
java·jvm·数据库