我需要使用java运行无限次的计时器,我需要让计时器每运行2秒,我该如何做?Java Timer的帮助?
回答
您可以使用ScheduledExecutorService的
ScheduledExecutorService ses = Executors.newSingleThreadScheduledExecutor();
ses.scheduleAtFixedRate(new Runnable() {
public void run() {
// do something.
}
}, 0, 2, TimeUnit.SECONDS);
long delay = 1000;
long period = 2000;
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
// Task here ...
}
}, delay, period);
'ScheduledExecutorService'是更好的选择。阅读[this](http://download.oracle.com/javase/6/docs/api/java/util/Timer.html#scheduleAtFixedRate%28java.util.TimerTask,%20java.util.Date,%20long%29 ),你就会知道为什么。 – mre 2011-04-28 15:47:02
我不明白为什么。您能否添加一个简短的解释? – MarcoS 2011-04-28 16:00:22
如果任务花费的时间超过'期限'完成,后续任务将开始排队,一旦任务完成,那些排队的任务将快速连续激发,并导致不稳定的行为。 'ScheduledExecutorService'不会发生这种情况。 – mre 2011-04-28 16:59:09
我以前用过quartz实现类似的功能,它一直运作良好,我。
public class Timer implements Runnable {
public static void main(String args[]) {
Timer t = new Timer();
t.run();
}
public void run() {
while (true) {
//do something cool
try {
Thread.sleep(2000);
} catch (InterruptedException ex) {
//handle interrupt
}
}
}
}
类似的东西?
你可以使用普通的线程而不是定时器。 ;) – 2011-04-28 15:42:58
- 1. Javax Swing Timer帮助
- 2. 的MouseListener帮助Java
- 3. Java Modulo帮助
- 4. 帮助在Java
- 5. Java ArrayList帮助!
- 6. 帮助在Java
- 7. 帮助在Java
- 8. NullPointerException Java帮助
- 9. Java Swing帮助
- 10. 帮助在Java
- 11. Java ArrayList帮助
- 12. Java Array帮助
- 13. Java MAP帮助
- 14. 需要Java帮助
- 15. Java程序帮助
- 16. 需要帮助JAVA
- 17. Java泛型帮助
- 18. Android SDK帮助(java)
- 19. java日历帮助
- 20. 帮助Java错误,
- 21. Java矢量帮助
- 22. 帮助java矩阵?
- 23. Java作业帮助
- 24. `try`块帮助Java
- 25. 批量Java帮助
- 26. Java方法帮助
- 27. java帮助文件
- 28. Java异常帮助
- 29. Java编程帮助
- 30. 的Java FileWriter的帮助
无限次?你会在这里一段时间! – diagonalbatman 2011-04-28 15:35:17
谷歌Java定时器让你在Java中的Timer类,为什么不使用它? http://download.oracle.com/javase/1.4.2/docs/api/java/util/Timer.html – 2011-04-28 15:36:34
@Roy我试图做到这一点,但我没有弄明白,我试着做:定时器timer = new Timer(2000,new TimerHandler()); ,但它给了我一个我无法修复自己的错误。 – Stan 2011-04-28 15:38:25