正文
Executor
框架提供了组件来管理Java
中的线程,Executor
框架将其分为任务,线程执行任务,任务执行结果三部分。下面以表格形式对这三部分进行说明。
项 | 说明 |
---|---|
任务 | Executor 框架提供了Runnable 接口和Callable 接口,任务需要实现这两个接口才能被线程执行。 |
线程执行任务 | Executor 框架提供了接口Executor 和继承于Executor 的ExecutorService 接口来定义任务执行机制。Executor 框架中的线程池类ThreadPoolExecutor 和ScheduledThreadPoolExecutor 均实现了ExecutorService 接口。 |
任务执行结果 | Executor 框架提供了Future 接口和实现了Future 接口的FutureTask 类来定义任务执行结果。 |
组件之间的类图关系如下所示。
总结
Executor
接口是线程池的顶层接口,通常说到的线程池指的是ThreadPoolExecutor
,同时ThreadPoolExecutor
还有一个子类叫做ScheduledThreadPoolExecutor
,其扩展实现了延时执行任务和定时执行任务的功能。
Executor
框架指的是任务
,执行任务的线程池
和任务执行结果
这三部分,切不可将Executor
框架与Executor
接口相混淆。