【发布时间】:2011-05-31 06:25:00
【问题描述】:
使用ScheduledExecutorService 的scheduleAtFixedRate() 定期运行一段代码而不是创建一个具有永久循环的新Runnable 以及导致线程的Thread.sleep() 有什么好处睡到想要的时间?
其中一种方法是否有性能提升?
【问题讨论】:
标签: java multithreading scheduled-tasks scheduledexecutorservice
使用ScheduledExecutorService 的scheduleAtFixedRate() 定期运行一段代码而不是创建一个具有永久循环的新Runnable 以及导致线程的Thread.sleep() 有什么好处睡到想要的时间?
其中一种方法是否有性能提升?
【问题讨论】:
标签: java multithreading scheduled-tasks scheduledexecutorservice
使用ScheduledExecutorService 的最大好处是您不需要编写代码,而且它经过了很好的测试。它还支持开箱即用地取消任务,您可以安排多个任务。
另一个好处是其他开发人员知道ScheduledExecutorService 做了什么,他们可以阅读 javadoc,他们可以在公共论坛上提出问题并获得帮助,而对于自定义代码则更难获得帮助。
ScheduledExecutorService 的 javadoc 也有一个很好的例子,说明如何创建一个每 10 秒执行一个小时,然后被取消的任务。
【讨论】: