java - Runnable 或 Executor 服务

标签 java multithreading runnable executorservice

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

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

谢谢:)

最佳答案

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

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

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

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

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

因此,也许根据您需要的复杂程度,您可以选择其中之一:Executor 用于更简化的要求(执行和监视许多任务),线程用于一次性或更简单的情况。

关于java - Runnable 或 Executor 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15980713/

相关文章:

java - JDBC Oracle 属性文件

android - 每个线程只能创建一个 Looper 错误,异步任务

Java启动两个线程?

Java:处理具有多个连接的套接字?

junit4 - Junit - java.lang.Exception : No runnable methods

java - "Run"方法不起作用

Java等于困惑

java - UnsupportedOperationException : No format processor for org. jboss...发现 MavenResolvedArtifact

java - 运行 mvn install 会导致 OOM 错误

c# - Windows服务中的多线程