面试题,查一个jvm有多少个线程有哪些方法?

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


写本文背景

面试题,查一个jvm有多少个线程有哪些方法?
当时,回答了3中方法,人家还一直问,好吧,没辙了,回来再思考一下,丫的,又发现了2种方法。。。

我也不明白,能回答3种,有什么不够用 了,吐槽,吐槽。。。不过,既然被难倒,回来还是要总结一下,下次再碰到这种对手,干掉他


在这里插入图片描述

一、可视化方法

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
jcmd 进程号 PerfCounter.print 命令

[cloudera-scm@devSparkWorker2 ~]$ jcmd  59326 PerfCounter.print
59326:

...
java.threads.daemon=20
***java.threads.live=30***
java.threads.livePeak=35
java.threads.started=183342

二. jcmd 工具

1.实践

线程打印出来再grep一下
[cloudera-scm@devSparkWorker2 ~]$ jcmd 59326 Thread.print |grep tid |wc
76 743 8230

[cloudera-scm@devSparkWorker2 ~]$ jcmd 59326 Thread.print |grep RUNNABLE |wc

2、jcmd常用用法

jcmd 171829 Thread.print -l # 打印线程栈
jcmd 171829 VM.command_line # 打印启动命令及参数
jcmd 171829 GC.heap_dump /data/31275.dump # dump heap
jcmd 171829 GC.class_histogram #查看类的统计信息
jcmd 171829 VM.system_properties #查看系统属性内容
jcmd 171829 VM.uptime #查看虚拟机启动时间
jcmd 171829 PerfCounter.print #查看性能统计

三、jstack,dump

四、 生产环境使用什么方法?

请看上面的思维导图


总结

从线上,线下,重启、非重启,可视化,非可视化工具,三种维度进行回答,都没搞定面试官,就放弃这个公司。。。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值