使用ScheduledExecutorService
的scheduleAtFixedRate()
定期运行一段代码,而不是创建一个永久循环与{Runnable
相关联的新Thread.sleep()
,有什么好处? {3}}导致线程在预期的时间内休眠?
使用其中一种方法可以获得性能提升吗?
答案 0 :(得分:8)
使用ScheduledExecutorService
的最大好处是您不需要编写代码,并且已经过充分测试。它还支持取消开箱即用的任务,您可以安排多个任务。
另一个好处是,其他开发人员知道ScheduledExecutorService
的作用,他们可以阅读javadoc,他们可以在puplic论坛上提出有关它的问题,并获得帮助,同时更难获得自定义代码的帮助。
ScheduledExecutorService的javadoc也有一个很好的例子,说明如何创建一个小时每10秒执行一次的任务,然后取消。