2013-03-14 75 views
-4

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

run() 
{ 
    while(...) 
    { 
     ... 
    } 
    function(); 
} 
+1

的唯一原因是,它叫了两声...所以你应该张贴其他线程的代码,而不是这一个 – 2013-03-14 15:19:47

+2

安置自己的代码.. – Pragnani 2013-03-14 15:20:00

+0

请阅读http://tinyurl.com/so-list – 2013-03-14 15:20:41

回答

1

在这种情况下,如果你打印出堆栈跟踪,找出谁是主叫方,或者你可以使用一个调试器只设置一个断点,并检查调用树它帮助。

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

for (StackTraceElement ste : Thread.currentThread().getStackTrace()) { 
    System.out.println(ste); 
}