一文讲清楚 JVM Safe Point

中很关键的一个概念,但我估计有不少同学不是很懂。是一个线程可以安全停留在这里的代码点。处时,就可以进行内存引用分析,从而确定哪些对象是存活的、哪些对象是不存活的。对于上面这些操作,都需要知道现场的各种信息,例如寄存器有什么内容,堆使用情况等等。理解成代码执行过程中的一些特殊位置,当线程执行到这个位置时,线程可以暂停。其实就是一个代码的特殊位置,在这个位置时线程可以暂停下来。

以下为知识DOC为大家进行整理的相关内容,希望对大家有所帮助!

大家好,我是树哥。

关于 Safe Point 是 JVM 中很关键的一个概念,但我估计有不少同学不是很懂。于是今天跟大家来深入聊聊 Safe Point,希望通过这篇文章能解答这样几个问题:

什么是 Safe Point?为啥需要 Safe Point?Safe Point 与 Stop the World 的关系?什么是 Safe Point

正如 Safe Point 名称的寓意一样jvm是什么意思,Safe Point 是一个线程可以安全停留在这里的代码点。当我们需要进行 GC 操作的时候,JVM 可以让所有线程在 Safe Point 处停留下来,等到所有线程都停在 Safe Point 处时,就可以进行内存引用分析,从而确定哪些对象是存活的、哪些对象是不存活的。

为什么让大家更加场景化地理解 Safe Point 这个概念,可以设想如下场景:

当需要 GC 时,需要知道哪些对象还被使用,或者已经不被使用可以回收了,这样就需要每个线程的对象使用情况。对于偏向锁( Lock),在高并发时想要解除偏置,需要线程状态还有获取锁的线程的精确信息。对方法进行即时编译优化(OSR 栈上替换),或者反优化( 栈上反优化),这需要线程究竟运行到方法的哪里的信息。

jvm是什么意思_xms是调整jvm哪个区域_jvm

对于上面这些操作,都需要知道现场的各种信息,例如寄存器有什么内容,堆使用情况等等。在做这些操作的时候,线程需要暂停,等到这些操作完成才行,否则会有并发问题,这就需要 Safe Point 的存在。

因此jvm是什么意思,我们可以将 Safe Point 理解成代码执行过程中的一些特殊位置jvm是什么意思,当线程执行到这个位置时,线程可以暂停。 Safe Point 处保存了其他位置没有的一些当前线程信息,可以提供给其他线程读取,这些信息包括:线程上下文信息,对象的内部指针等。

而 Stop the World 就是所有线程同时进入 Safe Point 并停留在那里,等待 JVM 进行内存分析扫描,接着进行内存垃圾回收的时间。

为啥需要 Safe Point

前面我们说到,Safe Point 其实就是一个代码的特殊位置,在这个位置时线程可以暂停下来。而当我们进行 GC 的时候,所有线程都要进入到 Safe Point 处,才可以进行内存的分析及垃圾回收。根据这个过程,其实我们可以看到:Safe Point 其实就是栅栏的作用,让所有线程停下来,否则如果所有线程都在运行的话,JVM 无法进行对象引用的分析,那么也无法进行垃圾回收了。

此外,另一个重要的 Java 线程特性 —— 也是根据 Safe Point 实现的。当我们在代码里写入 ​​.()​​ 时,只有线程运行到 Safe Point 处时才知道是否发生了 。因此,Safe Point 也承担了存储线程通信的功能。

总结

简单地说,Safe Point 就是人为规定出的一些代码位置,在这些位置上线程可以暂停下来,从而让 JVM 可以进行内存对象引用分析等操作。此外,Safe Point 处也会存储一些特殊的信息,从而支持 Java 的某些特性,例如:Java 的 特性需要到 Safe Point 处才能知道。

其实关于 Safe Point 的内容还有不少,例如:

什么地方会放 Safe Point?Safe Point 具体是怎么实现的?什么情况会让所有线程进入 Safe Point?

但对于大多数应用开发人员来说,其实暂时不需要了解得这么深,只需要知道啥是 Safe Point 以及其存在的价值即可。如果你对这些问题感兴趣,可以通过参考资料部分详细了解。

本文地址: https://www.zhishidoc.com/35603.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 859089669@qq.com 举报,一经查实,本站将立刻删除。

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022年11月13日 下午10:35
下一篇 2022年11月13日 下午10:58

相关推荐

  • 父母无私的爱简短句子八个字|《妈妈的葡萄》教案

    《妈妈的葡萄》教案2、正确、流利、有感情地朗读课文。师:学了前两篇课文,我们知道了世界上亲情的无私与珍贵,那你们在平时的生活中有过令人感动的亲情故事吗?学生活动:学生先把生字边读边分成认识的和不认识的两部分,把认识的字读给同桌听,如果有同桌不认识的字互相教一教。画出描写狐狸妈妈言行的语句,同桌交流你体会到了什么?抓住表示狐狸妈妈言行的句子,引导学生联系生活中母爱的事例体会亲情的伟大。

    2022年10月3日
    36700
  • 出去玩的朋友圈文案

    下面是小编帮大家整理的出去玩的朋友圈文案,供大家参考借鉴,希望可以帮助到有需要的朋友。文章目录列表:朋友来玩朋友圈文案经常跟朋友们一起出去玩,在群里商议,感觉挺好的哦玩得开心的朋友圈文案玩耍发朋友圈文案朋友圈游乐文案朋友圈玩乐可爱的文案玩后朋友圈文案我觉得趁着自己还年轻的时候,多出去走一走,多去见见不同的朋友,多去认识一些多彩的世界。朋友圈玩耍文案

    2022年10月27日
    13100
  • 真心话大冒险比较狠的问题100个155句

    2、背一位异性绕场一周真心话大冒险狠的。最适合问男生的真心话。22、情的吻墙10秒真心话比较狠的问题。最污的真心话大冒险。真心话开车问题越污越好。”最狠真心话大冒险。酒、喂吃的;真心话大冒险狠。108、在你洗澡时,有一专个非常丑的异性冲了进来,你会怎么样(实话实说,希望不要采用极端手法属)最的真心话大冒险。最狠的真心话大冒险。真心话大冒险比较狠的问题100个155句相关文章:

    2022年10月30日
    96600
  • 搬新家怎么祝福语 搬家怎么祝福语简短(精选28句)

    小编为朋友们了收集和编辑了搬家怎么祝福语简短,搬迁吉利话6个字,搬新家祝福语短句,乔迁四字吉利话,恭喜别人搬新家怎么说,乔迁之喜吉利话,仅供参考,欢迎大家阅读分享。4、新家好生活,真心老朋友!搬了新家,也不要忘记老朋友噢。搬新家啦!快乐搬,幸福迁,愿你生活事业展新颜。14、新春迁新宅,福地启福门。17、新家好生活,真心老朋友。搬了新家,也不要忘记老朋友哦。送上对联祝福语,恭祝乔迁之喜!搬新家啦!

    投稿 2022年10月30日
    12400
  • 百日宴致辞

    2016全新精品资料-全新公文范文-全程指导写作–独家原创百日宴致辞篇一:百日宴致辞下面为大家收集整理了一些小孩百日宴经典贺词,供大家参考一下,希望大家喜欢小孩百日宴经典贺词一各位来宾、各位长辈、各位亲朋好友:大家好!2016小孩百日宴精彩贺词四各位尊贵的来宾大家好:首先,非常感谢各位亲临我宝贝女儿xxx的百日宴.

    2022年10月17日
    15100

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注