【初级04】JVM线程模型

本文介绍了JVM内部的线程模型,包括VM线程、定时任务线程、GC线程、编译器线程和信号分发线程,重点阐述了安全点的概念和作用。同时,讨论了JVM如何支持线程转储,列举了如jstack、jcmd、jconsole等工具。此外,文章还提及了内存分析,特别是如何估算对象内存占用和利用JOL工具查看对象内存布局。
摘要由CSDN通过智能技术生成

1. JVM线程模型

JVM内部线程主要分为以下几种:

  1. VM线程:单例的VMThread对象,负责执行VM操作
  2. 定时任务线程:单例的WatcherThread对象,模拟在VM中执行定时操作的计时器中断
  3. GC线程:垃圾收集器中,用于支持并行和并发垃圾回收的线程
  4. 编译器线程:将字节码编译为本地机器代码
  5. 信号分发线程: 等待进程指示的信号,并将其分配给Java级别的信号处理方法

安全点(safe point)

  • 方法代码中被植入的安全点检测入口
  • 线程处于安全点状态:线程暂停执行,这时候线程栈不再发生改变
  • JVM的安全点状态:所有线程都处于安全点状态

JVM支持多种方式进行线程转储:

  • JDK工具:jstatck工具,jcmd工具,jconsole工具,jvisualvm,Java Mission Control等;
  • shell 命令或者系统控制台,比如Linux 的 kill -3, windows的Ctrl+Break等;
  • JMX技术, 主要是使用threadMx

2.内存分析与相关工具

一个对象占用的内存,可以使用Instrumentation.getObjectSize()来估算

JOL(Java Object Layout一个三方工具)可以用来查看对象的内存布局

 <未完>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值