java中Thread Dump是什么

说明

1、ThreadDump用于诊断Java应用程序的问题,可用于查找存储器泄漏,发现死锁线程等。

2、该系统可获得线程、线程运行状态、标识、调用等信息,包括完整的类名、执行方法、源代码所在行数等。

特点

可用于各种操作系统;

可以在各种Java应用服务器下使用;

可以在不影响系统性能的情况下使用;

问题可以直接定位在应用程序的代码行上。

实例

publicclassJStack{
publicstaticvoidmain(String[]args)throwsException{
...
Stringpid=args[optionCount];
Stringparams[];
if(locks){
params=newString[]{"-l"};
}else{
params=newString[0];
}
runThreadDump(pid,params);
...
}
//Attachtopidandperformathreaddump
privatestaticvoidrunThreadDump(Stringpid,Stringargs[])
throwsException{
VirtualMachinevm=null;
try{
vm=VirtualMachine.attach(pid);
}catch(Exceptionx){
...
}
//CasttoHotSpotVirtualMachineasthisisimplementationspecific
//method.
InputStreamin=((HotSpotVirtualMachine)vm)
.remoteDataDump((Object[])args);
//readtoEOFandjustprintoutput
byteb[]=newbyte[256];
intn;
do{
n=in.read(b);
if(n>0){
Strings=newString(b,0,n,"UTF-8");
System.out.print(s);
}
}while(n>0);
in.close();
vm.detach();
}

以上就是java中Thread Dump的介绍,希望对大家有所帮助。更多Java学习指路:Java基础

原文来自:https://www.py.cn
© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容