关于类: ScheduledThreadPoolExecutor
ScheduledThreadPoolExecutor是ThreadPoolExecutor的1个子类,能够按照按时的方式完java 并发成任务(而不是FIFO方式)。在java.util.Timer不是足够完善的情况下,ScheduleThreadPoolExecutor具有强大的可适用性。
Executors类有很多静态方法(表10)用于创建适用于各种常见情况的预先包装的ExecutorService和ScheduleExecutorService实例
ExecutorService最主要的实现类是ThreadPoolExecutor。这个实现类提供了大量的可配置特性:
线程池–设定常用线程数量(启动前可选参数)和最大可用线程数量。
线程工厂–通过自定义的线程工厂生成线程,例如生成自定义线程名的线程。
工作队列–指定队列的实现类,实现类必须是梗阻的、可以是无界的或有界的。
被拒绝的任务–当队列已经满了或者是执行者不可用,需要为这些情况指定解决议计划略。
生命周期中的钩子–重写扩展在任务运行之前或然后的生命周期中的要害点
关闭–停止已接受的任务,等候正在运行的任务完成后,关闭ThreadPoolExecutor。
方法描述
newSingleThreadExecutor: 创建只有1个线程的ExecutorService
newFixedThreadPool: 返回拥有固定命量线程的ExecutorService
newCachedThreadPool: 返回1个线程数量可变的ExecutorService
newSingleThreadScheduledExecutor:返回只有1个线程的ScheduledExecutorService
newScheduledThreadPool:创建拥有一组焦点线程的ScheduledExecutorService
ExecutorService几乎涵盖了所有应该创建线程对象或线程池的情景。在代码中需要直接创建1个线程的时候,可以思量通过Executor工厂创建的ExecutorService能否实现相同的目标;这样做经常更简单、更矫捷。