首页 > 其他分享 >线程转储

线程转储

时间:2023-05-24 18:23:19浏览次数:29  
标签:jstack HDTool 转储 jar hbcsh 线程

线程转储(Thread Dump)就是JVM中所有线程状态信息的一次快照。

线程转储一般使用文本格式, 可以将其保存到文本文件中, 然后人工查看和分析, 或者使用工具/API自动分析。我们一般使用JDK自带的命令行工具来获取Java应用程序的线程转储。

1. JSTACK

  jstack 是JDK内置的一款命令行工具, 专门用来查看线程状态, 也可以用来执行线程转储。

  一般先通过 jps 或者 ps 命令找到Java进程对应的pid, 然后在控制台中通过pid来输出线程转储。 当然, 我们也可以将输出内容重定向到某个文件中。

  使用jstack工具获取线程转储的基本参数格式为:

jstack [-F] [-l] [-m] <pid>

  对应的参数选项是可选的。 具体含义如下:

-F 选项, 强制执行线程转储; 有时候 jstack pid 会假死, 则可以加上 -F 标志
-l 选项, 会查找堆内存中拥有的同步器以及资源锁
-m 选项, 额外打印 native栈帧(C和C++的)

例如, 获取线程转储并将结果输出到文件:

[root@cwy-hbcsh-zyl-1 HDTool]# jps
22387 jar
25524 Jps
17925 jar
13383 jar
21422 jar
[root@cwy-hbcsh-zyl-1 HDTool]# jstack -F 17925 > /opt/HDTool/threaddump.txt
[root@cwy-hbcsh-zyl-1 HDTool]#

2. JCMD

  jcmd是非常强大的本地工具, 支持Java 8及更高版本。使用以下jcmd命令,可以生成线程转储。

jcmd <pid> Thread.print > <file-path>

  例如, 获取线程转储并将结果输出到文件:

[root@cwy-hbcsh-zyl-1 HDTool]# jcmd 17925 Thread.print > /opt/HDTool/dump.txt

标签:jstack,HDTool,转储,jar,hbcsh,线程
From: https://www.cnblogs.com/silgen/p/17429170.html

相关文章

  • Java大文件分片上传/多线程上传
    ​ javaweb上传文件上传文件的jsp中的部分上传文件同样可以使用form表单向后端发请求,也可以使用ajax向后端发请求    1.通过form表单向后端发送请求         <formid="postForm"action="${pageContext.request.contextPath}/UploadServlet"method="post"e......
  • java 多线程:synchronized 详解
    总结一个锁对象只能同时被一个线程持有,分为对象锁和类锁对象锁:每个对象都可以作为锁(几个不同的对象就是几个锁)类锁:字节码对象也能作为锁(全局唯一)同步方法不能自定义锁,只能是默认的锁(非静态:this,静态:class);同步代码块默认的锁和方法一样(非静态:this,静态:class,普通方法里面可以......
  • Java配置线程池
    一、Java配置线程池1、线程池分类、其他1.1、分类IO密集型和CPU密集型任务的特点不同,因此针对不同类型的任务,选择不同类型的线程池可以获得更好的性能表现。1.1.IO密集型任务​ IO密集型任务的特点是需要频繁读写磁盘、网络或者其他IO资源,执行时间长,CPU占用率较低。对......
  • 【Kafka从入门到成神系列 八】Kafka 多线程消费者及TCP连接
    ......
  • python+playwright 学习-65多线程同时打开多个浏览器不同账号操作
    前言最近用小伙伴提到多线程同时操作多个浏览器,每个浏览器用不同账号登录的需求。多线程操作以下是2个账号同时打开2个浏览器操作的示例fromplaywright.sync_apiimportsync_playwrightfromthreadingimportThreaddefdo_some_thing(username,password):playwri......
  • C++ 线程安全和可重入函数
    线程安全线程安全是指在多线程环境下,同一函数或函数库被不同线程调用,不会出现数据不一致的情况。如何确保一个函数是线程安全的:1.对共享资源加锁。2.从逻辑上进行设计,保证资源的访问修改不会冲突。一般情况下我们使用加锁的方式保证线程安全,具体加锁操作有互斥锁、条件变量、......
  • 多线程下载图片并压缩
    从ftp服务器下载文件,文件里是多张图片的name和uri,格式是name||uri,根据uri下载图片并压缩存储到本地服务器主要流程:1 从ftp服务器下载文件,2 将文件格式解析后的地址存入map容器内,3 计算每个线程需要下载的url,并循环调用threadPool.execute(mythead),子线程根据uri下......
  • 多线程要点博客锦集
    写的好的博客要收藏起来,避免以后丢失!1、Java多线程:彻底搞懂线程池2、Java线程池实现原理及其在美团业务中的实践......
  • Python多线程爬虫又来了
    Python多线程的主要好处是可以在单个程序中同时执行多个任务,从而提高应用程序的性能和效率。具体来说,多线程有以下几个优点:提高CPU利用率:通过多线程,可以更充分地利用CPU资源,尤其适用于计算密集型的任务。降低IO阻塞:对于需要等待IO操作完成的任务(如网络请求或文件读写),将它们放入......
  • linux创建线程报错资源受限
    LinuxError:11Resoucetemporarilyunavailable可能涉及到的限制:1、/proc/sys/kernel/threads-max系统允许的最大线程数2、/proc/sys/kernel/pid_max系统最大pid值3、用户资源限制ulimit-u查看当前用户的maxuserprocesses......