Java教程

运行时数据区

本文主要是介绍运行时数据区,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

运行时数据区

简单介绍

内存划分(不同的JVM对于内存的划分方式和管理机制存在着部分差异):

在这里插入图片描述

这些运行时数据区,有一些会随着虚拟机启动而创建,随着虚拟机退出而销毁,另一些与线程一一对应,随着线程开始和结束而创建和销毁

如上图所示:灰色为线程私有,红色为多个线程共享

  • 每个线程:独立包括程序计数器,栈,本地栈
  • 线程间共享:堆,堆外内存(永久代或元空间,代码缓存)

下图为内存的具体划分(存在不同说法)

在这里插入图片描述

  • 线程间共享的说明

在这里插入图片描述

每个JVM只有一个Runtime实例,即运行时环境,相当于内存结构中的那个框框:运行时环境

线程

  • 一个程序里的运行单元,JVM允许多个线程并行执行

  • 在Hotspot JVM里,每个线程与操作系统的本地线程zhijieyings

    • 当一个java线程准备好执行以后,此时操作系统的本地线程也同时创建。java线程执行终止,本地线程被回收
  • 操作系统负责所有线程的安排调度到任何一个可用的CPU上,一旦本地线程初始化成功,他会调用java线程中的run()方法

  • JVM系统线程
    在这里插入图片描述


[程序计数器]
[虚拟机栈]
[本地方法栈]
[堆]
[方法区]

尚硅谷宋红康JVM全套教程详解java虚拟机

这篇关于运行时数据区的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!