目录

任务最终是以Runnable的方式在Thread中运行的,Callable只是为了对异步编程友好

Thread

一个线程,封装了一个Runnable对象。屏蔽了操作系统创建线程的细节

Runnable

可被线程运行的任务

Callable

可被运行的任务,并且有返回值

Future

返回一个异步的token,用于查询任务的执行状态

FutureTask

一个future任务(对外是一个Runnable任务,但是内部是存的是一个Callable任务),继承了Runnable(具有执行特性),和Future接口(具有异步获取结果的特性)

RunnableAdapter

把Runnable任务转成,Callable任务 (FutureTask中只保存Callable类型的任务。所以,如果是Runnable任务,需要通过该类转换)

Executor

定义一个任务执行者(这层抽象的目的是将任务的提交和运行方式解耦。你根据需要实现每个线程一个任务,也可以实现复用线程池中的线程)

ExecutorService

定义执行者的其他管理接口,如何创建任务,如果关闭任务,查看任务状态等。 线程池就是一个执行者的角色,它可以提交任务,并根据自己测策略决定怎么运行任务(重写execute函数)。