ScheduledExecutorService与使用Thread.sleep()滚动自己的Runnable之间的区别

使用ScheduledExecutorServicescheduleAtFixedRate()运行一段代码而不是创建一个新的Runnable有一个好处,它有一个永久循环与Thread.sleep() ,导致线程为所需的内容hibernate期?

使用其中一种方法可以获得性能提升吗?

使用ScheduledExecutorService的最大好处是您不需要编写代码,并且它已经过充分测试。 它还支持取消开箱即用的任务,您可以安排多个任务。

另一个好处是其他开发人员知道ScheduledExecutorServicefunction,他们可以阅读javadoc,他们可以在puplic论坛上提出有关它的问题,并获得帮助,同时更难获得自定义代码的帮助。

ScheduledExecutorService的javadoc也有一个很好的例子,说明如何创建一个每10秒执行一个小时的任务,然后取消。