ScheduledExecutorService vs Timer vs Handler

时间:2012-11-09 21:37:57

标签: android concurrency timer java.util.concurrent

使用ScheduledExecutorService / Timer / Handler有哪些优缺点?据我所知,在Android而不是Timer中,需要使用Handler,但ScheduledExecutorService呢?

据我所知,HandlerScheduledExecutorService仅适用于相对时间,对吗?

1 个答案:

答案 0 :(得分:5)

这三个允许您在不同的(例如非主要)线程上执行任务。 Handler允许您使用传递Actor模式的消息在线程之间安全地进行通信。它不允许你做时间/延迟/等。

ScheduledExecutorService是一种非常通用的线程管理解决方案。您使用特定数字将其初始化为工作线程,然后为其提供工作单元。您可以延迟/时间和重复工作单位。

Timer类有一个简单的API,类似于ScheduledExecutorService,用于一次性单线程使用。官方API建议不要使用此类,而是滚动自己的ScheduledExecutor。