首页 > 其他分享 >JVM-安全区域和安全点

JVM-安全区域和安全点

时间:2022-10-23 22:00:37浏览次数:70  
标签:Region Safe 安全 区域 线程 JVM GC

看到了两篇文章很有意思,记录一下。
https://zhuanlan.zhihu.com/p/461298916
https://mp.weixin.qq.com/s/KDUccdLALWdjNBrFjVR74Q

总之对于这两篇文章所产生的问题的原因是因为:
线程1,线程2中是两个十分耗时的循环,且是counted loops。因为是counted loops,所以并不会在每次会跳之前放置安全点。
JVM只有在进入安全点之后才能周期性的停止用户线程(如做清理垃圾工作)。
而Thread.Sleep使主线程进入安全区域,最后当Thread.sleep睡醒时(也就是从native方法返回时)又需要检查其他线程是否已经跑到安全点,如果没有跑到安全点,此时它就会继续挂起。
而这段代码由于是counted loops,不会设置安全点。这就导致,由于这两个线程没有进入安全点而无法停止。对于主线程来说,就是无法离开安全区域,则会把自己挂起,等待被唤醒。

安全点:安全点是为JVM进行GC操作时,触发Stop the world而设置的。
安全区域:
Safe Point 是对正在执行的线程设定的。如果一个线程处于 Sleep 或中断状态,它就不能响应 JVM 的中断请求,再运行到 Safe Point上。
因此 JVM 引入了 Safe Region。
Safe Region 是指在一段代码片段中,引用关系不会发生变化。在这个区域内的任意地方开始 GC 都是安全的。
线程在进入 Safe Region 的时候先标记自己已进入了 Safe Region,等到被唤醒时准备离开 Safe Region 时,先检查能否离开,如果 GC 完成了,那么线程可以离开,否则它必须等待直到收到安全离开的信号为止。
参考:https://blog.csdn.net/weixin_29051149/article/details/114614008

标签:Region,Safe,安全,区域,线程,JVM,GC
From: https://www.cnblogs.com/tyhA-nobody/p/16819722.html

相关文章

  • 常用的JVM参数
    常用的JVM参数内容会持续补充堆内存相关序号参数解释1-XmsJVM启动时申请的初始Heap值,eg:-Xms1G堆内存初始值为1G2-XX:InitialHeapSizeJVM启动时申......
  • CSS background-image的使用,让超大背景图的主要区域显示
    CSSbackground-image的使用,让超大背景图的主要区域显示,你的电脑屏幕小,原图是1920*1110的   ......
  • 【Linux】主机安全
    主机安全配置,欢迎留言1.腾讯云端口限制,关闭不用端口2.linux①ssh默认端口更改②用户权限③密码强度④蜜罐⑤密钥登录......
  • 有哪些APP安全小测试
    app安全测试方法小百科​随着无线网络和移动通信技术的发展,智能手机功能日趋强大,因此也将APP市场带动了起来。但是随着手机操作系统日益标准化,网络出击手段不同往日,黑客已经......
  • app安全测试方法小百科
     随着无线网络和移动通信技术的发展,智能手机功能日趋强大,因此也将APP市场带动了起来。但是随着手机操作系统日益标准化,网络攻击手段不同往日,黑客已经可以像攻击电脑信息......
  • JVM内存模型
    前情提要上面对运行时数据区描述了很多,其实重点存储数据的是堆和方法区(非堆),所以内存的设计也着重从这两方面展开(注意这两块区域都是线程共享的)。对于虚拟机栈,本地方法栈......
  • 【博学谷学习记录】超强总结,用心分享 | JVM内存结构
    目录程序计数器:Java虚拟机栈:本地方法栈:堆:元空间:补充这里结合一段java代码的执行理解内存划分执行javac命令编译源代码为字节码执行java命令创建JVM,调......
  • 安全测试 + 渗透测试 Xmind 要点梳理
    原文链接:安全测试+渗透测试Xmind要点梳理 一、安全测试要点梳理  二、安全测试工具整理 三、渗透测试要点梳理   这三个思维导图来自《质量全面......
  • 20201220蔡笃俊《信息安全系统设计与实现》第五章学习笔记
    一、任务内容自学教材第5章,提交学习笔记(10分)知识点归纳以及自己最有收获的内容(3分)问题与解决思路(2分)实践内容与截图,代码链接(3分)...(知识的结构化,知识的完整性等,提交m......
  • 账号安全和引导登录控制
    账号安全基本措施 将非登录用户的Shell设为/sbin/nologin查看/etc/passwd文件,可以看到多个程序用户  使用usermod命令修改登录shell usermod-s/sbin/nolog......