线程池ThreadPoolExecutor

线程池生命周期状态

RUNNING:接收新任务并执行队列中的任务

SHUTDOWN:不会接收新任务,但会继续处理队列中的任务

STOP:不接受新任务,不处理队列中的任务,并中断正在进行的任务

TIDYING:所有的任务都已终止,工作线程数为零,在转为此状态后可以执行一个terminated()的钩子函数

TERMINATED:terminated()的钩子函数执行完后,转为TERMINATED状态

常见的线程池种类
常见的线程池 特性 核心线程 最大线程数 使用的任务队列
FixedThreadPool 定长 指定 等于核心线程数 LinkedBlockingQueue
SingleThreadPool 单个 1 1 LinkedBlockingQueue
CachedThreadPool 不定长 0 Integer.MAV_VALUE SynchronousQueue
SecudleThreadPool 周期性
执行任务的线程池
指定 Integer.MAV_VALUE DelayedWorkQueue
拒绝任务策略(默认使用的AbortPolicy)

AbortPolicy: 抛出RejectedExecutionException异常
DiscardPolicy: 什么都不做,不执行,也不抛异常
DiscardOldestPolicy: poll出当前第一个元素,再次执行execute提交任务方法
CallerRunsPolicy : 直接执行Runnable的run方法

posted @ 2021-09-11 21:19  水映苑  阅读(47)  评论(0编辑  收藏  举报