首页 > 其他分享 >5_运行时数据区概述

5_运行时数据区概述

时间:2024-03-14 13:23:52浏览次数:28  
标签:虚拟机 线程 内存 JVM 概述 数据 运行

运行时数据区概述

内存是非常重要的系统资源,承载着操作系统和应用程序的实时运行。JVM内存布局规定了Java在运行过程中内存申请、分配、管理的策略,保证了JVM高效稳定的运行。不同的JVM对内存的划分方式和管理机制存在着部分差异。结合JVM虚拟机规范,来讨论下经典的JVM内存布局。

JVM内存图

Java虚拟机定义了若干种程序运行期间会使用到的数据区,其中有一些会随着虚拟机的启动而创建,随着虚拟机的退出而销毁。另外一些则是与线程一一对应的,这些与线程对应的数据区域会随着线程的开始而创建,线程的结束而销毁。对于一个进程而言,它的方法区和堆内存只有一份,但是PC、本地方法栈、虚拟机栈组数和线程数相关。如下图:灰色的为单独线程私有的,红色的为多个线程共享的:

线程共享和私有的结构

关于JVM里面常见的线程:

  • 虚拟机线程:这种线程的操作是需要JVM到达安全点才会出现,这些操作必须在不同的线程中,发生的原因是他们都需要JVM到达安全点,这样堆才不会变化。
  • 周期任务线程:这种线程是时间周期事件的体现(比如中断),他们一般用于周期性操作的调度执行。
  • GC线程:提供垃圾回收支持,专门提供GC的。
  • 编译线程:这种线程在运行时会将字节码编译成本地代码
  • 信号调度处理:这种线程接收信号并发送给JVM,在它内部通过调用适当的方法进行处理。

标签:虚拟机,线程,内存,JVM,概述,数据,运行
From: https://www.cnblogs.com/lilyflower/p/18072638

相关文章

  • 滴水逆向笔记系列-7.堆栈图-8.c语言反汇编-9.数据类型
    第七课堆栈图1.函数函数的入口汇编中的函数函数有入口出口,但不一定有返回值和参数2、堆栈windows堆栈:什么是堆栈平衡:第八课c语言分析这段代码的反编译有时候跟反汇编不一定要进函数看,有时候从上下文就能大概猜出函数的作用第九课c语言21、什么是裸函数可以看到......
  • 数据库练习发生的error—— check the manual that corresponds to your MySQL server
    记录一下发生的错误。 checkthemanualthatcorrespondstoyourMySQLserverversionfortherightsyntaxtousenear''id'),参考链接:完美解决ERROR1064(42000):YouhaveanerrorinyourSQLsyntax...near…_responsecode:420001064r......
  • 从零开始写 Docker(六)---实现 mydocker run -v 支持数据卷挂载
    本文为从零开始写Docker系列第六篇,实现类似docker-v的功能,通过挂载数据卷将容器中部分数据持久化到宿主机。完整代码见:https://github.com/lixd/mydocker欢迎Star推荐阅读以下文章对docker基本实现有一个大致认识:核心原理:深入理解Docker核心原理:Namespace、Cgr......
  • 数据结构算法系列----高精度加法(大数相加)、处理前导零
    目录一、为什么要使用高精度加法二、处理前导零1、为什么要处理前导零2、处理前导零的代码三、处理大数相加四、完整代码即例题一、为什么要使用高精度加法  当处理远大于longlong数据范围的数时,通常会将这些大数表示为字符串,然后通过字符串的方式进行加减乘除......
  • openGauss 由于RemoveIPC未关闭导致数据库crash
    openGauss由于RemoveIPC未关闭导致数据库crashsemop引发的数据库crash--主库FATAL:semop(id=xxxxx)failed:IdentifierremovedFATAL:semctl(xxxxxx,11,SETVAL,0)failed:Invalidargument--备库FATAL:semctl(xxxxxx,11,SETVAL,0)failed:InvalidargumentLOG......
  • MogDB openGauss数据库扩缩容的几种方式
    MogDB/openGauss数据库扩缩容的几种方式文本出处:https://www.modb.pro/db/453105随着业务的发展,业务系统对数据库的架构要求也在变化,比如需要读负载均衡、机房搬迁、服务器硬件替换等等,这需要在原数据库主备架构的基础上进行扩/缩容操作,目前MogDB数据库安装方式有三种,分别是......
  • 京东零售数据资产能力升级与实践
    开篇京东自营和商家自运营模式,以及伴随的多种运营视角、多种组合计算、多种销售属性等数据维度,相较于行业同等量级,数据处理的难度与复杂度都显著增加。如何从海量的数据模型与数据指标中提升检索数据的效率,降低数据存算的成本,提供更可信的数据内容和多种应用模式快速支撑业务的数......
  • 【计算机网络】数据链路层——无线局域网与VLAN
    IEEE802.11:无线局域网通用标准IEEE802.11是无线局域网通用的标准,它是由IEEE所定义的无线网络通信的标准。MAC帧头格式目的地址源地址:实际通信中的两个设备的地址接收端发送端:两个基站有很多帧头格式:刚才讲的是WDS。无线局域网1.有固定基础设施无线局域网2.无固定基......
  • openGauss账本数据库,你不知道的那些事儿
    openGauss账本数据库,你不知道的那些事儿摘要本文将通过对比官方文档关于“设置账本数据库”中的几个章节,结合源码来说说文档中操作步骤背后的原理。账本数据库概述你知道的那些事儿官方文档账本数据库融合了区块链思想,将用户操作记录至两种历史表中:用户历史表和全局区块表......
  • Qt 如何搭建Lua的运行环境
    一、Lua简介Lua是一种强大的、高效的、轻量级的、可嵌入的脚本语言。它支持过程(procedural)编程、面向对象编程、函数式编程以及数据描述。Lua是动态类型的,运行速度快,支持自动内存管理,因此被广泛用于配置、脚本编写等场景。二、Lua的优势Lua脚本可以很容易的被C/C++代......