2011-09-28 52 views
0

一個特定的時間間隔後我有一類計劃在Java中

class A { 
    int a=0; 
    public int getVal() { 
     return a; 
    } 
} 

,我已經執行功能GETVAL週期性的任務。我該如何從另一個班級b做到這一點?謝謝。

+0

我正在用Java編寫一個簡單的程序,而不是使用Swing。所以,無論如何調用getVal()而不將它放入run()或者使用run()呢?再次感謝。 –

回答

1

只是簡單地給在Java線程看看。你可以讓這個類可以運行,並定期執行這個函數,並且可以使用sleep()函數產生延遲。否則,您可以使調用函數可運行。

3

java.util.Timer的各種潛在問題在「Java Concurrency in Practice」的第6.2.5節中列出。例如:

  • Timer如果TimerTask運行時間太長,則表現不佳。
  • Timer如果TimerTask引發未檢查的異常,則表現不佳。

該書的作者總結說:「在Java 5.0或更高版本中使用Timer幾乎沒有什麼理由。」

相反,他們建議使用ScheduledExecutorService。您可以通過ScheduledThreadPoolExecutor構造函數或工廠方法在Executors中構建一個。後面的選項更好。