JUC-任务执行框架
职责模型:
- 任务类型:
Runnable
无返回结果、Callable
有返回结果 - 任务与线程执行分离:
Executor
- 执行线程管理与任务管理:
ExecutorService
- 任务管理功能:
Future
- 基于线程池的线程执行管理:
ThreadPoolExecutor
接口/类 | 职责 |
---|---|
Executor |
执行提交的Runnable 任务;该接口解耦了任务提交与任务执行(线程使用、调度等等) |
ExecutorService |
提供了管理线程终止的方法、以及返回跟踪一个或多个异步任务的Future 方法 |
ScheduledExecutorService |
管理任务延迟执行或者周期执行 |
CompletionService |
解耦异步任务生产与已完成任务结果消费 |
AbstractExecutorService |
提供默认实现 |
ThreadPoolExecutor |
提供基于线程池执行提交任务的机制,通常使用Executors 工厂方法配置 |
Worker |
ThreadPoolExecutor 中线程池中最小单元,工作线程;用户提交任务都是由这些工作线程执行 |
ThreadFactory |
创建新线程接口 |
Future |
管理异步任务,并获取异步任务计算结果 |
RunnableFuture |
代理异步任务执行;其run方法执行完成使得Future 完成,并且可以获取结果 |
ScheduledFuture |
延迟任务管理接口 |
RunnableScheduledFuture |
可执行的延迟任务管理接口 |
FutureTask |
异步任务管理接口默认实现 |
QueueingFuture |
异步任务执行完毕时,进入阻塞队列 |