Runnable或Executor服务

时间:2013-04-12 20:57:44

标签: java multithreading runnable executorservice

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

可能有一种方法比这两种方法都要好,但我不知道它们。

谢谢:)

1 个答案:

答案 0 :(得分:12)

  • Runnable表示要执行的代码。
  • Executor及其子类代表执行策略。

这意味着前者实际上是由后者消耗的。您可能的意思是:简单线程和执行器之间哪个更合适?

这个问题的答案基本上是:它取决于。

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

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

因此,根据您需要的复杂程度,您可以选择一个或另一个:Executor以获得更加简化的要求(执行和监控的许多任务),一次性线程或更简单的情况。

相关问题