线程与任务的关系是什么?

时间:2011-09-14 07:54:43

标签: java oop

我知道线程和任务处于不同的抽象级别。但无论如何,我仍然感到困惑,他们之间的关系是什么。顺便说一句,我认为任务告诉我们如何完成工作和线程实际上根据Task实例执行作业。我的理解是否正确?谢谢你^

4 个答案:

答案 0 :(得分:3)

我假设任务你的意思是RunnableCallable。关系很简单:

  

线程可能用于执行多个任务

  • 可能 - 因为你不需要一个单独的线程来执行任务(从技术上讲,一切都在一个线程内运行 - 你不需要单独的一个)

  • 多个 - 线程可以重复使用;它可以从队列

  • 等集合中运行多个任务

通常一个线程执行一个Runnable传递给Thread构造函数或多个Callable传递给ExecutorService(在大多数情况下包装线程池)。

答案 1 :(得分:0)

如果Task表示像this这样的东西,那么区别在于该任务用于运行某些类似线程的代码执行,但是具有其他属性,例如何时运行它,多少次,以及取消执行的选项,而一个线程将立即继续运行一次。

答案 2 :(得分:0)

任务相当抽象,可以作为进程或线程实现。

答案 3 :(得分:0)

您的理解是正确的。

我们可以与workflow patterns进行类比,其中任务是需要在进程中完成的事情,线程是用于处理或执行它们的资源。