我遇到了一个奇怪的问题,我的run()方法运行了两次函数。可能的原因是什么? run()是从另一个线程调用的。
run()
{
while(...)
{
...
}
function();
}
答案 0 :(得分:1)
在这些情况下,如果您打印堆栈跟踪以找出谁是调用者,或者如果您可以使用调试器只是设置断点并检查调用树,则会有所帮助。
打印堆栈跟踪的最简单方法是:
for (StackTraceElement ste : Thread.currentThread().getStackTrace()) {
System.out.println(ste);
}