java多线程中任务与线程的关系

abcdefghiijklmnopqrs 2015-11-21 08:14:14
在看thinking in java的时候发现任务与线程分不清楚,一会任务一会线程,刚开始把任务当做了静态的要执行的代码。但是书上说任务可以运行。那任务不是静态的也可以运行和线程有什么区别与联系吗?
...全文
282 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
code小生 2015-11-27
  • 打赏
  • 举报
回复
楼上的各位大神都已经说得很透彻了。你所说的疑惑应该是由于第一次看这本书,建议你再次去看任务和线程那一部分内容,你就会明白的。
捏造的信仰 2015-11-26
  • 打赏
  • 举报
回复
任务是对要做的事情的定义。比如下面的:
Runnable runningTask = new Runnable() {

  @Override
  public void run() {
    System.out.println("runnig.");
  }

}
它只是定义了一个任务,至于怎么执行它,我们可以根据自己的需要来。 而线程,只是我们执行并行任务所使用的一个工具。考虑下面的例子:
Thread newThread = new Thread(runningTask);
newThread.start();
这两行代码,第一行的意思是“我创建一个名为 newThread 的线程,并将 runningTask 交给它” 第二行的意思是“我命令 newThread 开始在后台运行。因为我之前将 runningTask 交给了它,那么它现在运行的就是 runningTask”
nomasp 2015-11-26
  • 打赏
  • 举报
回复
简单的说任务就是线程在做的
viscent_huang 2015-11-25
  • 打赏
  • 举报
回复
可以把线程理解成一个工作人员。而任务就是这个工作人员干的活。比如,餐厅的工作人员在为顾客传菜,传菜就是个任务。

对应到代码,其实很简单。记住一点就行:Java中线程就是Thread类或其子类的一个实例。也就是说你不必关注线程对象是用哪种方法创建的。在此基础上,线程所执行的代码,即run方法中的代码所实现的处理逻辑,比如读取数据库中的一条记录,就是一个任务。因此,所谓任务是一个相对的概念。一个任务可以是读取数据库中的一条记录,也可以是FTP传输一批文件,FTP传输一个文件……
  • 打赏
  • 举报
回复
你可以这么理解,实现Runnable接口相当于创建一个任务,线程是用来执行某个任务的,可以根据Runnable(任务)创建一个Thread(线程)

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧