一個特定的時間間隔後我有一類計劃在Java中
class A {
int a=0;
public int getVal() {
return a;
}
}
,我已經執行功能GETVAL週期性的任務。我該如何從另一個班級b做到這一點?謝謝。
一個特定的時間間隔後我有一類計劃在Java中
class A {
int a=0;
public int getVal() {
return a;
}
}
,我已經執行功能GETVAL週期性的任務。我該如何從另一個班級b做到這一點?謝謝。
它對我來說一直很好,但也有更「現代」的API ScheduledExecutorService和ScheduledFuture,它也可以做到這一點。 – Guillaume
只是簡單地給在Java線程看看。你可以讓這個類可以運行,並定期執行這個函數,並且可以使用sleep()函數產生延遲。否則,您可以使調用函數可運行。
java.util.Timer
的各種潛在問題在「Java Concurrency in Practice」的第6.2.5節中列出。例如:
Timer
如果TimerTask
運行時間太長,則表現不佳。Timer
如果TimerTask
引發未檢查的異常,則表現不佳。該書的作者總結說:「在Java 5.0或更高版本中使用Timer
幾乎沒有什麼理由。」
相反,他們建議使用ScheduledExecutorService
。您可以通過ScheduledThreadPoolExecutor
構造函數或工廠方法在Executors
中構建一個。後面的選項更好。
我正在用Java編寫一個簡單的程序,而不是使用Swing。所以,無論如何調用getVal()而不將它放入run()或者使用run()呢?再次感謝。 –