1.线程池种类
1).newFixedThreadPool //固定大小线程池
2).newSingleThreadExecutor //单一线程的线程池
3).newCachedThreadPool //缓存线程池
4).newScheduledThreadPool //计划任务线程池
2.ThreadPoolExecutor
真正的线程池方法,通过传入不同的参数构造出上面几种不同的线程池
ThreadPoolExecutor(int corePoolSize, //核心线程数
int maximumPoolSize, //最大线程数量
long keepAliveTime, //存活时间
TimeUnit unit, //时间单位
BlockingQueue workQueue) //保存任务
3.线程队列
1).LinkedBlockingQueue
2).SynchronousQueue //该线程队列不会保存数据,当要向此队列加入数据的前提是,有一个线程正要往这个队列拿数据
4.回调API
需要重载线程池方法
beforeExecute //执行前
afterExecute //执行后
terminated //线程池被关闭
5.拒绝策略
RejectedExecutionHandler //拒绝,并抛出异常
DiscardPolicy // 直接不要,丢掉
DiscardOldestPolicy //丢在线程池队列中最老的那个
CallerRunsPolicy //我做不了我还给你你来做
6.自定义线程工厂
网友评论