是否有可用的工具来跟踪Java线程的创建和生命周期?我会对以下所有内容感兴趣:
答案 0 :(得分:4)
我不知道这样的任何框架。您当然可以继承Thread
类,并将这些信息存储在您自己中,如下所示。但是,这不会跟踪在其他类中分配的Thread
,例如Executor
s等。
public class MyThread extends Thread {
StackTraceElement[] constructorTrace;
StackTraceElement[] startTrace;
long runStartTimeMillis;
long runFinishTimeMillis;
// you'll need to duplicate the constructors you need
public MyThread() {
super();
constructorTrace = Thread.currentThread().getStacktrace();
}
@Override
public void start() {
super.start();
startTrace = Thread.currentThread().getStacktrace();
}
@Override
public void run() {
runStartTimeMillis = System.currentTimeMillis();
super.run();
runFinishTimeMillis = System.currentTimeMillis();
}
}
答案 1 :(得分:4)
答案 2 :(得分:0)
VisualVM now(*)有一个线程选项卡
(*)从那时起不确定