画图学 JVM(五) 03 运行时数据区概述和线程

一、内容导图

在这里插入图片描述

二、运行时数据区概述

2.1 在 JVM 中的位置

在这里插入图片描述

  • 运行时数据区主要描述 JVM 内存申请、分配、管理等策略。

2.2 经典布局图

在这里插入图片描述

  • 各种 JVM 的运行时数据区存在差异,最大的区别就是方法区。

2.3 阿里运行时数据结构图

在这里插入图片描述

  • JDK 1.8 开始, 方法区更名为元空间(或元数据区)。
  • 各种版本中,对代码缓存也不一样,有些建议将它与元数据区放在一起。

2.4 数据区域与线程

在这里插入图片描述

  • 线程私有(灰色)
    与线程一一对应,随线程开始创建,线程结束时销毁。
  • 进程共用(红色)
    同一 JVM 实例中线程共享,随虚拟机启动而创建,随虚拟机退出而销毁。

2.5 Runtime 类

Class Runtime:

  • 每个 JVM 实例对应一个 Runtime 类的实例,及运行时环境,相当于内存结构中的运行时环境。
  • Runtime 实例可以通过 Runtime.getRuntime() 方法获取。它是单例的。
  • 一些使用示例
Runtime runtime = Runtime.getRuntime();
System.out.println("total memory : " + runtime.totalMemory()/(1024*1024) + "M");
System.out.println("max memory   : " + runtime.maxMemory()  /(1024*1024) + "M");
System.out.println("free memory  : " + runtime.freeMemory() /(1024*1024) + "M");
System.out.println("Main Done //~~");

total memory : 230M
max memory : 3403M
free memory : 226M
Main Done//~~

runtime.gc();
// 启动一个记事本, 5秒后关闭.
Process process = runtime.exec("notepad");
Thread.sleep(1000*5);
process.destroy();

三、线程简介

3.1 简介

  • 线程是一个程序运行单元,JVM 允许一个应用有多个线程并行的执行
  • 在 HotSpot JVM 里,每个线程都与操作系统本地线程直接映射。
  1. 当一个 Java 线程准备好执行以后,此时一个操作系统的本地线程也同 时创建。
  2. Java 线程执行终止后,本地线程也会回收
  3. 操作系统负责所有线程的安排调度到可用CPU上, 一旦本地线程初始化成功,它就会调用 Java 线程中的 run()方法

3.2 HotSpot 中主要的后台系统线程:

  • 虚拟机线程:这种线程的操作是需要 JVM 达到安全点才会出现,这些操作必须在不同线程中发生的原因是他们都需要 JVM 达到安全点。这样堆才不会变化。这种线程的执行类型包括“stop-the-world”的垃圾回收线程、线程栈收集、线程挂起以及偏向锁撤销
  • 周期任务线程:这种线程是周期事件的体系(比如中断),他们一般用于周期性操作的调度执行
  • GC 线程:对在 JVM 里不同种类的垃圾收集行为提供支持
  • 编译线程:在运行时将字节码编译成本地代码
  • 信号调度线程:接收信号并发送给 JVM,在它内部调用适当方法进行处理

系列学习

画图学JVM (一)相关资料和学习计划 《硅谷2020最新版宋红康JVM》
画图学JVM (二)章节目录
画图学JVM (三)01 JVM 与 Java 体系结构
画图学JVM (四)02 类加载子系统
画图学JVM(五) 03 运行时数据区概述和线程
画图学JVM(六) 04 程序计数器

附件

《尚硅谷2020最新版宋红康JVM》01 JVM 与 Java 体系结构 学习记录 PPT
《尚硅谷2020最新版宋红康JVM》02 类加载子系统 学习记录 PPT
《尚硅谷2020最新版宋红康JVM》03 运行时数据区概述和线程 PPT
《尚硅谷2020最新版宋红康JVM》04 程序计数器 PPT
《尚硅谷2020最新版宋红康JVM》推荐的资料和工具集.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值