任务执行
在线程中执行任务
串行地执行任务
显式地为任务创建线程
无限制创建线程的不足
- 创建生命周期的开销非常高
- 资源消耗
- 稳定性
Executor框架
在Java类库中,任务执行的主要抽象不是Thread,而是Executor:
1 | public interface Executor { |
Executor基于生产者-消费者模式,提交任务相当于生产者,执行任务相当于消费者。
执行策略
线程池
Executors静态工厂方法:
- newFixedThreadPool
- newCachedThreadPool
- newSingleThreadExecutor
- newScheduledThreadPool
Executor生命周期
为了解决执行任务的生命周期问题,Executor扩展了ExecutorService接口,增加了一些用于生命周期管理的方法。
延迟任务与周期任务
Timer有一些缺陷,应该使用ScheduledThreadPoolExecutor