首页 > 其他分享 >三、运行时数据区

三、运行时数据区

时间:2022-11-28 14:58:25浏览次数:31  
标签:Java 本地 指令 线程 JVM 执行 数据 运行

01 概述

  class文件通过类加载子系统加载、链接、初始化到运行时数据区,然后执行引擎执行运行时数据区中的数据。
  线程私有:程序计数器、虚拟方法栈、本地方法栈。跟随线程的开始和结束而创建和销毁。
  线程共享:堆、方法区。随着虚拟机的退出而销毁。
  一个Java应用程序即一个JVM只有一个Runtime实例,即运行时环境,对应一个运行时数据区。

(1)线程

  在Hotspot JVM中,每个线程与操作系统的本地线程直接映射(1:1)。即一个Java线程准备(程序计数器、虚拟方法栈、本地方法栈等)好执行后,一个操作系统的本地线程会同时创建。Java线程执行终止后,本地线程也会回收。
  操作系统负责所有线程的安排调度到任何一个可用的CPU上。一旦本地线程初始化成功后,就会调用Java线程中的run()方法。

(2)JVM系统线程

  虚拟机线程,到安全点出现;周期任务线程;GC线程;编译线程;信号调度线程。

02 PC寄存器

(1)概念

  PC寄存器存储下一条指令的地址,即将要执行的指令代码。由执行引擎读取下一条指令。

  • 程序计数器存储当前线程正在执行的Java方法的JVM指令地址,若是native方法,则是未指定值。
  • 它是程序控制流的指示器,分支、循环、跳转、异常处理、线程恢复等基础功能需要其完成。
  • 字节码解释器工作时就是通过改变该寄存器的值选取下一条需要执行的字节码指令。
  • 唯一没有OutOfMemoryError的区域。

标签:Java,本地,指令,线程,JVM,执行,数据,运行
From: https://www.cnblogs.com/hbjiaxin/p/16932177.html

相关文章

  • 项目中配置多数据源
    项目中配置多数据源如果你的项目中有类似的需求,不妨尝试一下这种方式。如果没有这样的需求,对这项技术混个眼熟也好。idea、springboot、pg、oracle引入依赖包<!--动态......
  • 数据结构初阶--二叉树介绍(基本性质+堆实现顺序结构)
    树的基本概念和结构树的相关概念节点的度:一个节点含有的子树的个数称为该节点的度;如上图:A的为2叶节点或终端节点:度为0的节点称为叶节点;如上图:D、F、G、H为叶节点非......
  • apollo配置中心从数据库中查询所有的配置及项目
    apollo配置中心从数据库中查询所有的配置及项目需求背景:如果需要从Apollo查询某个配置项做批量的更新替换,如果一个一个找不合适且容易遗漏,需要从底层数据库表中模糊查询来......
  • postgresql 数据库 INSERT 或 UPDATE 大量数据时速度慢的原因分析
    前言最近这段时间一直使用pg数据库插入更新大量的数据,发现pg数据库有时候插入数据非常慢,这里我对此问题作出分析,找到一部分原因,和解决办法。一死元祖过多提起pg数据库......
  • 【JS】120-重温基础:语法和数据类型
    最近开始把精力放在重新复习JavaScript的基础知识上面,不再太追求各种花枝招展的前端框架,框架再多,适合实际项目才是最重要。上星期在掘金发布了几篇文章,其中最大块算是 【复......
  • 拥抱开源还是坚守阵地:传统数据库供应商面临抉择
    开源软件正在引爆整个数据库产业,对于几十年前就在这个行业摸爬滚打的软件供应商来说,他们的商业模式面临着日益加剧的威胁,努力维持现状还是搭载开源的顺风......
  • Net6 CodeFirst注入MySQL数据库上下文
    十年河东,十年河西,莫欺少年穷学无止境,精益求精 2022太难了,好多公司倒闭,互联网不景气,工作难找,苏州的C#/Net程序员的招聘更是少之又少,java,C,等其他语言也是供大于求,总之,难上......
  • 如何用微软StreamInsight 处理和分析实时数据
    StreamInsight是SQLServer2008R2中的新模块,它提供了复杂事件处理(CEP,ComplexEventProcessing)的功能。即对于来自多数据源的无限事件序列提供近乎零延时的连续处理......
  • PostgreSQL数据库所有的等待事件
    WaitEventTypeWaitEventNameDescriptionLWLockShmemIndexLockWaitingtofindorallocatespaceinsharedmemory.OidGenLockWaitingtoallocateoras......
  • 通过Mono 在 Heroku 上运行 .NET 应用
    英文原文:​​Running.NETonHeroku​​中文原文:​​在Heroku上运行.NET应用​​自从加入了Heroku之后,我就想在这个平台上运行.NET程序。现在我很高兴向大家宣布,我......