哪个更容易也更适合在另一个线程中运行,特别是程序等待结果但不会锁定 ui。
可能还有一种方法比这两种方法都好,但我不知道。
谢谢:)
最佳答案
Runnable
表示要执行的代码。Executor
及其子类代表执行策略。
这意味着前者实际上被后者消费了。您的意思可能是:在简单线程和执行器之间,哪个更合适?
这个问题的答案基本上是:视情况而定。
Executor
是复杂的工具,可让您选择可以运行的并发任务数,并调整执行上下文的不同方面。它们还通过返回一个 token (称为 Future
或有时是一个 promise )来提供监视任务执行的工具,让请求任务执行的代码查询该任务是否完成。
线程是一种不太复杂(或更准系统)的异步执行代码的解决方案。您仍然可以让它们手动返回一个 Future
,或者只是检查线程是否仍在运行。
因此,也许根据您需要的复杂程度,您可以选择其中之一:Executor
用于更简化的要求(执行和监视许多任务),线程用于一次性或更简单的情况。
关于java - Runnable 或 Executor 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15980713/