Executor框架的两级调度模型
在HotSpotVM的线程模型中,Java线程被一对一的映射到本地操作系统线程.在上层,Java多线程通常将应用分解为若干个任务,然后使用户的调度器(Executor)将这些任务映射为固定数量的线程;在底层操作系统将这些线程映射到硬件处理器.
Executor框架的结构
主要由3部分组成:
- 任务:包括执行任务需要的接口Runnable,Callable
- 任务的执行:任务执行的核心接口Executor及子类ExecutorService及实现(ThreadPoolExecutor,ScheduledThreadPoolExecutor)
- 异步计算的结果:接口Future和实现类FutureTask
Executor框架的成员
- ThreadPoolExecutor
- FixedThreadPool:使用固定线程数的线程池
- SingleThreadPool:使用单线程的线程池
- CachedThreadPool:根据需要创建新线程的线程池
- ScheduledThreadPoolExecutor:可以顺序延迟执行的线程池
- ScheduledThreadPoolExecutor:包含若干个线程的线程池
- SingleThreadScheduledExecutor:只包含一个线程
- Future接口:异步计算的结果
- Runnable接口和Callable接口:任务