2013-03-14 74 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); 
}