Java 线程的堆栈跟踪信息

Java 线程的堆栈跟踪信息,展示了线程的当前状态和执行位置。以下是详细解释:
在这里插入图片描述
在这里插入图片描述

线程基本信息

"Thread-0" #16 prio=5 os_prio=0 cpu=0.00ms elapsed=16.29s tid=0x00000243105a4130 nid=0x5384 waiting on condition  [0x0000007687ffe000]
  • 线程名称Thread-0(由系统自动命名的线程)
  • 线程编号#16(JVM 内部的唯一编号)
  • 优先级prio=5(默认优先级,范围 1-10)
  • 操作系统优先级os_prio=0(映射到操作系统的优先级)
  • CPU 时间cpu=0.00ms(线程当前占用的 CPU 时间)
  • 运行时间elapsed=16.29s(线程从启动到现在的总时间)
  • 线程 IDtid=0x00000243105a4130(JVM 内部的线程唯一标识符)
  • 本地线程 IDnid=0x5384(操作系统分配的线程 ID)
  • 线程状态waiting on condition(正在等待某个条件触发)
  • 堆栈地址[0x0000007687ffe000](线程堆栈的内存地址)

线程状态信息

java.lang.Thread.State: TIMED_WAITING (sleeping)
  • 线程状态TIMED_WAITING(限时等待状态)
  • 具体原因sleeping(线程正在执行 Thread.sleep()

堆栈跟踪信息

at java.lang.Thread.sleep(java.base@17.0.13/Native Method)
at com.example.testThread.TestJoin$1.run(TestJoin.java:9)
  • 第一行:线程正在执行 Thread.sleep() 方法(本地方法,由 JVM 实现)
  • 第二行TestJoin 类的内部类(TestJoin$1)的 run() 方法在第 9 行调用了 sleep()

代码推测

根据堆栈信息,可以推测 TestJoin.java 的第 9 行代码类似:

public class TestJoin {public static void main(String[] args) {Thread t = new Thread(() -> {try {// 第9行:线程休眠1000毫秒Thread.sleep(1000); } catch (InterruptedException e) {e.printStackTrace();}});t.start();}
}

总结

  • 线程状态Thread-0 正在休眠(TIMED_WAITING),等待 1 秒后继续执行。
  • 触发原因:代码中显式调用了 Thread.sleep() 方法。
  • 常见场景:线程需要暂停执行一段时间(如定时任务、资源等待等)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/253.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

机器学习管道 pipeline

知识回顾: 转化器和估计器的概念管道工程ColumnTransformer和Pipeline类 作业: 整理下全部逻辑的先后顺序,看看能不能制作出适合所有机器学习的通用pipeline 基础概念 pipeline在机器学习领域可以翻译为“管道”,也可以翻译为“流水线”&…

硬件工程师笔记——电子器件汇总大全

目录 1、电阻 工作原理 欧姆定律 电阻的物理本质 一、限制电流 二、分压作用 三、消耗电能(将电能转化为热能) 2、压敏电阻 伏安特性 1. 过压保护 2. 电压调节 3. 浪涌吸收 4. 消噪与消火花 5. 高频应用 3、电容 工作原理 (…

【React中useRef钩子详解】

一、useRef的核心特性 useRef是React提供的Hook,用于在函数组件中创建可变的持久化引用,具有以下核心特性: 持久化存储 返回的ref对象在组件整个生命周期内保持不变,即使组件重新渲染,current属性的值也不会丢失。无触发渲染 修改ref.current的值不会导致组件重新渲染,适…

在 C++中,指针数组与数组指针的区别

1. 指针数组:本质上是一个数组,数组中的每个元素都是一个指针。也就是说,这个数组存储的是多个指针变量,这些指针可以指向不同的对象(比如不同的变量、数组等) 。 2. 数组指针:本质上是一个指针,这个指针指向一个数组。即它指向的是数组的首地址,通过这个指针可以操作…

python打卡训练营打卡记录day22

复习日 仔细回顾一下之前21天的内容,没跟上进度的同学补一下进度。 作业: 自行学习参考如何使用kaggle平台,写下使用注意点,并对下述比赛提交代码 kaggle泰坦尼克号人员生还预测 导入数据 # 导入所需库 import pandas as pd impor…

Python并发编程:开启性能优化的大门(7/10)

1.引言 在当今数字化时代,Python 已成为编程领域中一颗璀璨的明星,占据着编程语言排行榜的榜首。无论是数据科学、人工智能,还是 Web 开发、自动化脚本编写,Python 都以其简洁的语法、丰富的库和强大的功能,赢得了广大…

支持向量机与逻辑回归的区别及 SVM 在图像分类中的应用

支持向量机与逻辑回归的区别及 SVM 在图像分类中的应用 在机器学习的多元算法领域中,支持向量机(SVM)和逻辑回归(LR)作为两种经典的监督学习算法,被广泛应用于各类分类任务。尽管它们有着相似的目标&#…

powerbuilder9.0中文版

经常 用这个版本号写小软件,非常喜欢这个开发软件 . powerbuilder9.0 非常的小巧,快捷,功能强大,使用方便. 我今天用软件 自己汉化了一遍,一些常用的界面都已经翻译成中文。 我自己用的,以后有什么界面需要翻译,再更新一下。 放在这里留个…

Qt中在子线程中刷新UI的方法

Qt中在子线程中刷新UI的方法 在Qt中UI界面并不是线程安全的,意味着在子线程中不能随意操作UI界面组件(比如按钮、标签)等,如果强行操作这些组件有可能会导致程序崩溃。那么在Qt中如何在子线程中刷新UI控件呢? 两种方…

PXE_Kickstart_无人值守自动化安装系统

文章目录 1. PXE2. 配置服务参数2.1 tftp服务配置2.2 dhcp服务配置2.3 http服务配置 3. 配置PXE环境3.1 网络引导文件pxelinux.03.2 挂载镜像文件3.3 创建配置文件default3.4 复制镜像文件和驱动文件3.5 修改default文件3.6 配置ks.cfg文件 4. PXE客户端4.1 创建虚拟机&#xf…

一、数据仓库基石:核心理论、分层艺术与 ETL/ELT 之辨

随着企业数据的爆炸式增长,如何有效地存储、管理和分析这些数据,从中提炼价值,成为现代企业的核心竞争力之一。数据仓库 (Data Warehouse, DW) 正是为此而生的关键技术。理解其基础理论对于构建高效的数据驱动决策体系至关重要。 一、数据库…

C++——继承

本次我们来讲解关于继承的知识点。 继承的概念 1.继承是面向对象编程的一个重要概念,指一个类(子类)可以继承另一个类(父类)的属性和方法,可以使得代码复现和拓展,增加功能。子类能够获得父类的…