Apu*_*ngh 2 java multithreading
我正在调试一些代码.我的调试器显示代码的来源来自Thread.run().我需要知道调用Thread.start()代码的哪一部分!有没有办法找到这个?
您可以使用new Throwable().getStackTrace()获得完整的堆栈跟踪.要获得start堆栈,您必须扩展Thread,实际需要的几次之一(主要使用Runnable是首选).
class C extends Thread {
StackTraceElement[] constructed;
StackTraceElement[] started;
public C() {
constructed = new Throwable().getStackTrace();
}
@Override
public void run() {
// Your suuff.
}
@Override
public synchronized void start() {
started = new Throwable().getStackTrace();
super.start();
}
}
Run Code Online (Sandbox Code Playgroud)