哪个更容易,更适合用于在另一个线程中运行,特别是这样程序会等待结果,但不会锁定一个ui。
可能有一种方法比这两种方法都要好,但我不知道它们。
谢谢:)
答案 0 :(得分:12)
Runnable
表示要执行的代码。Executor
及其子类代表执行策略。 这意味着前者实际上是由后者消耗的。您可能的意思是:简单线程和执行器之间哪个更合适?
这个问题的答案基本上是:它取决于。
Executor
是复杂的工具,可让您选择可运行的并发任务数,并调整执行上下文的不同方面。它们还提供监视任务执行的工具,方法是返回一个令牌(称为Future
或有时是一个承诺),让代码请求执行任务以查询该任务的完成情况。
线程不那么精细(或更多准系统)是异步执行代码的解决方案。您仍然可以让他们手动返回Future
,或者只是检查线程是否仍在运行。
因此,根据您需要的复杂程度,您可以选择一个或另一个:Executor
以获得更加简化的要求(执行和监控的许多任务),一次性线程或更简单的情况。