Runnable或Executor服务

Coo*_*per 4 java multithreading executorservice runnable

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

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

谢谢 :)

did*_*erc 12

  • Runnable 表示要执行的代码.
  • Executor 它的子类代表执行策略.

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

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

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

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

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