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

时间:2011-05-31 06:25:01

标签: java multithreading scheduled-tasks scheduledexecutorservice

使用ScheduledExecutorServicescheduleAtFixedRate()定期运行一段代码,而不是创建一个永久循环与{Runnable相关联的新Thread.sleep(),有什么好处? {3}}导致线程在预期的时间内休眠?

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

1 个答案:

答案 0 :(得分:8)

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

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

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