【问题标题】:ScheduledExecutorService vs Timer vs HandlerScheduledExecutorService vs Timer vs Handler
【发布时间】:2012-10-30 06:20:07
【问题描述】:

使用ScheduledExecutorService/Timer/Handler的优缺点是什么?据我了解,在 Android 中而不是 Timer 需要使用 Handler,但是 ScheduledExecutorService 呢?

据我了解,HandlerScheduledExecutorService 仅适用于相对时间,对吧?

【问题讨论】:

标签: android concurrency timer java.util.concurrent


【解决方案1】:

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

ScheduledExecutorService 是一个非常通用的线程管理解决方案。你用一定数量的工作线程初始化它,然后给它工作单元。您可以延迟/计时和重复工作单元。

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

【讨论】:

  • 你可以使用Handler#postDelayed(Runnable, interval)
猜你喜欢
  • 2018-08-04
  • 2017-02-13
  • 1970-01-01
  • 1970-01-01
  • 2010-09-29
  • 2018-02-22
  • 2016-06-16
  • 2011-05-03
  • 1970-01-01
相关资源
最近更新 更多