java并发编程(1):并发编程框架简介

1、Executor框架

Executor框架构建线程池及任务调度处理。

java并发编程(1):并发编程框架简介
Executor框架.png

Executor接口:线程执行的基本接口,用户通过此接口提交任务给线程或线程池执行;
ExecutorSevice接口:线程池相关操作接口,定义了线程池的维护、任务提交及状态维护等相关接口;
AbstractExecutorService抽象类:ExecutorSevice接口的抽象实现;
ThreadPoolExecutor线程池类:线程池的具体实现类,实现了线程池的创建、维护等,任务的提交、任务队列的维护、任务的分发执行等相关操作。
ScheduledThreadPoolExecutor:继承于ThreadPoolExecutor的实现类,可基于时间延时或时间间隔进行任务执行和调度等;
ForkJoinPool:继承于AbstractExecutorService,基于任务拆分结果聚合的架构;
DelegatedExecutorService:由Executors工具类实现,ExecutorService的包装器类,使得ExecutorService不可变;
FinalizableDelegatedExecutorService:由Executors工具类实现,实现了finalize()方法的DelegatedExecutorService类;
DelegatedScheduledExecutorService:由Executors工具类实现,基于时间延迟和时间间隔调度的DelegatedExecutorService类;

2、Future框架

Future封装异步执行结果等数据;

java并发编程(1):并发编程框架简介
Future框架.png

Future:封装异步执行的结果及任务状态等;
RunnableFuture:继承于Runnable及Future接口;
FutureTask:封装了线程、任务、任务状态维护、任务结果、等待队列等相关信息;
ScheduledFutureTask:继承于FutureTask,同时保存了任务调度时间相关信息。
ForkJoinTask:封装了任务拆分及结果聚合相关处理;

3、BlockingQueue阻塞队列

BlockingQueue为任务队列,是任务生产和线程消费的缓存通道。

java并发编程(1):并发编程框架简介
BlockingQueue阻塞队列.png

BlockingQueue:阻塞队列接口,封装对象添加及获取的相关接口;
ArrayBlockingQueue:基于数组实现的阻塞队列;
LinkedBlockingQueue:基于队列实现的阻塞队列;
PriorityBlockingQueue:支持优先级的阻塞队列;
DelayedWorkQueue:基于时间延迟的排序的队列,主要在ScheduledThreadPoolExecutor中使用。