【问题标题】:Runnable or Executor Service可运行或执行服务
【发布时间】:2013-04-05 12:47:24
【问题描述】:

这更容易也更适合用于在另一个线程中运行事物,特别是这样程序会等待结果但不会锁定 ui。

也可能有比这两种方法更好的方法,但我不知道。

谢谢:)

【问题讨论】:

  • 这取决于你需要运行什么样的线程,你能给我们一些具体的吗?
  • 我正在使用 Cling UPNP 库并希望从中获取信息而不阻塞 UI,因为它通常似乎只能在一段时间后获得结果

标签: java multithreading runnable executorservice


【解决方案1】:
  • Runnable 代表要执行的代码。
  • Executor 及其子类代表执行策略。

这意味着前者实际上被后者消耗。你的意思大概是:简单线程和执行器之间,哪个更合适?

这个问题的答案基本上是:视情况而定。

Executors 是复杂的工具,可让您选择可能正在运行的并发任务的数量,并调整执行上下文的不同方面。它们还提供了监控任务执行的工具,方法是返回一个令牌(称为Future 或有时是一个承诺),让请求任务执行的代码查询该任务的完成情况。

线程不太复杂(或更准系统)是异步执行代码的解决方案。您仍然可以让他们手动返回Future,或者只是检查线程是否仍在运行。

因此,根据您需要的复杂程度,您可能会选择其中一个:Executors 用于更精简的需求(要执行和监控的许多任务),线程用于一次性或更简单的情况。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-22
    • 1970-01-01
    • 2014-06-22
    • 2016-12-21
    • 2019-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多