-
核心线程数
-
最大线程数,
3.非核心线程的空闲时间(keepAliveTime) keepAliveTime 非核心线程存活时间,标记非核心线程空闲多久后被干掉
4.unit:keepAliveTime的时间单位
5.workQueue用于保存任务的队列,可以为无界、有界、同步移交三种队列类型之一,
6.hreadFactory:创建线程的工厂类
- handler拒绝策略
abortPolicy 中断抛弃异常
DiscardPolicy 丢弃
DiscardOldestPolicy 丢弃队列中存活时间最久的
CallerRunsPolicy 让提交任务的线程去执行任务
ExecutorService executor = new ThreadPoolExecutor
newFixedThreadPool 没有非核心线程数,缓存队列是无界队列 ;;当请求过多时(任务处理速度跟不上任务提交速度造成请求堆积)可能导致占用过多内存或直接导致OOM异常
newSingleThreadExector 核心线程数为1,没有非核心线程数,缓存队列是无界队列;;当请求过多时(任务处理速度跟不上任务提交速度造成请求堆积)可能导致占用过多内存或直接导致OOM异常
newCachedThreadPool 核心线程数为0,最大线程数很大,队列使用的同步移交队列,当请求很多时就可能创建过多的线程,导致资源耗尽OOM
newScheduledThreadPool 核心线程数定长,最大线程数很大,队列使用的延迟队列 ;当请求很多时就可能创建过多的线程,导致资源耗尽OOM
网友评论