线程池
2021-04-05 15:17:54 0 举报
线程池
作者其他创作
大纲/内容
执行拒绝策略
创建新线程执行任务
4种拒绝策略
1
Excutors.newCachedThreadPool()
核心线程数为0,最大线程数为Integer.MAX_VALUE
2
Excutors.newFixedThreadPool()
创建固定大小的线程池,工作队列无界
3
Excutors.newSingalThreadPool()
只有一个核心线程,单线程的线程池
4
Excutors.newSchedulThreadPool()
提交任务
终止策略
调用者运行策略
丢弃策略
7个创建线程池的参数:
int corePoolSize
核心线程数
int maximumPoolSize
最大线程数(包括了核心线程数)
long keepAliveTime
线程空闲时的存活时间
TimeUnit unit
存活时间的时间单位
5
BlockingQueue<Rubbable> workQueue
线程的阻塞队列
6
ThreadFactory threadFactory
线程工厂
7
RejectedExecutionHandler handler
拒绝策略
创建线程执行任务
核心线程池已满?
线程池已满?
工作队列已满?
4种常用创建线程池的工具
弃老策略
任务添加到队列,等待执行
CallerRunsPolicy调用者运行策略
判断线程池是否已经关闭,如果没有关闭则让当前线程其运行任务
AbortPolicy终止策略
直接抛出异常
DiscardPolicy丢弃策略
丢弃任务不做任何处理
DiscardOldestPolicy弃老策略
如果线程未关闭弹出工作队列头部元素,再次尝试
0 条评论
下一页