微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

运行时数据区

运行时数据区

简单介绍

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

在这里插入图片描述

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

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

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

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

在这里插入图片描述

  • 线程间共享的说明

在这里插入图片描述

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

线程

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

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

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

  • JVM系统线程

    在这里插入图片描述


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

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

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

相关推荐