任务 只是一段代码,一段要达成你目的的代码,这段代码写在哪,怎么写其实无所谓,只是因为你希望 java 的多线程机制能够识别并调用你编写的任务,所以规定了Runnable接口,让你的任务来实现该接口,把你想做的工作在实现该接口的 run 方法中实现。
那么,已经定义了任务类,那任务和线程有什么关系呢?
java 的 线程 是用来驱动任务执行的,也就是说你得把任务挂载到一个线程上,这样该线程才能驱动你定义的任务来执行。
线程的定义
显示的定义线程的过程 就是将任务附着到线程的过程。线程Thread自身并不执行任何操作,它只是用来被多线程机制调用,并驱动赋予它的任务。
例如: 声明线程并将任务附着到该线程上:Thread thread = new Thread(new Task()); 这样,任务就附着给了线程,下面就是让线程启动,只需要如下的调用:thread.start();
简而言之:可以把线程理解成一个工作人员。而任务就是这个工作人员干的活。比如,餐厅的工作人员在为顾客传菜,传菜就是个任务。
小结:Java中线程 就是Thread类或其子类的一个实例。也就是说你不必关注线程对象是用哪种方法创建的。在此基础上,线程所执行的代码,即run方法中的代码所实现的处理逻辑,比如读取数据库中的一条记录,就是一个任务。因此,所谓任务是一个相对的概念。一个任务可以是读取数据库中的一条记录,也可以是FTP传输一批文件。