JVM知识——安全点

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

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

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

相关推荐
Z-D-K7 分钟前
AI 安全:让能力、权限与责任同步增长
人工智能·安全
Data-Miner1 小时前
AI 大模型安全深度分析:风险演化、治理现状与前瞻路径
人工智能·安全
程序员天天困1 小时前
PHP2Shell 漏洞拆解:WordPress 与 nginx 为何中招
安全·php
校园安全大脑平台2 小时前
校园安全平台过等保二级,开发阶段要注意什么
开发语言·安全·php
2601_967212723 小时前
柔性取电轨道技术结构、场景参数与工程实施要点
大数据·经验分享·安全
学到老活到老3 小时前
类已经加载了,为什么静态代码还没执行?
java·jvm
学到老活到老3 小时前
写了 new,就一定会在堆上分配对象吗?
java·jvm
Linux运维技术栈3 小时前
近期 PHP 高危安全风险排查与多环境升级实操
开发语言·安全·php
迪康软件zz4 小时前
从 PHP 高危漏洞看纵深防御:资产盘点、补丁管理与端点防护实践
运维·安全·自动化运维
Fnetlink14 小时前
Fnet 云网安 261023
运维·开发语言·网络·人工智能·安全·web安全·php