-4

我遇到了一个奇怪的问题,我的 run() 方法运行了两次函数。可能的原因是什么?run() 是从另一个线程调用的。

run()
{
    while(...)
    {
        ...
    }
    function();
}
4

1 回答 1

1

在这些情况下,如果您打印出堆栈跟踪以找出谁是调用者,或者您是否可以使用调试器,只需设置一个断点并检查调用树,这会有所帮助。

打印堆栈跟踪的最简单方法是:

for (StackTraceElement ste : Thread.currentThread().getStackTrace()) {
    System.out.println(ste);
}
于 2013-03-14T15:25:37.267 回答