Java 线程和任务的关系是什么?

Java 线程和任务的关系是什么?,java,oop,Java,Oop,我知道线程和任务处于不同的抽象级别。但无论如何,我仍然不清楚它们之间的关系。顺便说一下,我认为任务告诉我们如何做一项工作,线程实际上是根据一个任务实例来执行工作的。我的理解正确吗?谢谢你^我假设任务的意思是可运行的和可调用的。关系很简单: 线程可用于执行多个任务 可能-因为你不需要一个单独的线程来执行任务(从技术上讲,一切都在一个线程中运行-你不需要一个单独的线程) 多线程可重用;它可以从集合(如队列)中运行多个任务 通常一个线程执行一个Runnable传递给thread构造函数的或多个Ca

我知道线程和任务处于不同的抽象级别。但无论如何,我仍然不清楚它们之间的关系。顺便说一下,我认为任务告诉我们如何做一项工作,线程实际上是根据一个任务实例来执行工作的。我的理解正确吗?谢谢你^

我假设任务的意思是
可运行的
可调用的
。关系很简单:

线程可用于执行多个任务

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

  • 多线程可重用;它可以从集合(如队列)中运行多个任务


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

如果通过
Task
你的意思是,不同之处在于,任务用于运行某些类似线程的代码执行,但具有附加属性,例如何时运行、运行多少次以及取消执行的选项,而线程只需立即执行一次。

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

您的理解是正确的


我们可以做这样的类比:任务是流程中需要完成的事情,线程是用于处理或执行它们的资源。

什么是任务?它是java类吗?在java的核心API中没有作为
任务的东西。你能具体说明一下你指的是什么吗?我想大概是在yes中讨论过的。我的理解是,他们在那里做同样的工作,是正确的还是错误的?谢谢uthank u。我明白了你的意思。我还有一个问题,比如:我读了org.apache.nutch.parse.ParseUtil.runParser(Parser p,Content-Content)的源代码。这两个方法调用是否执行相同的操作:指令1:t.interrupt();说明2:任务。取消(true);请把它作为一个单独的问题发布托马斯:他。。。一小时前。