Java多线程-12丨JUC-任务执行框架

Posted by jiefang on November 1, 2019

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 异步任务执行完毕时,进入阻塞队列