ThreadPoolExecutor JDK提供的线程池

1.工作图

2.构造参数解释:

//public ThreadPoolExecutor(int corePoolSize,
//int maximumPoolSize,
//long keepAliveTime,
//TimeUnit unit,
//BlockingQueue<Runnable> workQueue,
//RejectedExecutionHandler handler)

//首先介绍 相互有紧密逻辑关系的参数:corePoolSize, maximumPoolSize, workQueue, handler
//corePoolSize:表示核心工作的线程数,来一个任务new一个线程,并不是传入比如5个线程就new了5个线程,而是用到了再new,当超过5个线程时会转入workQueue中去,
//也就是加入到第五个参数workQueue队列中,假如队列也满了,那么就继续新启线程,但不能 超过第二个参数maximumPoolSize的值
// 那么假如maximumPoolSize的大小都无法满足要求,这个时候会采用第六个参数RejectedExecutionHandler handler, 采取拒绝策略,分为以下策略:
// 1.DiscardOldestPolicy 丢弃阻塞队列里面最靠前的任务,执行当前任务
// 2.AbortPolicy  缺省策略,直接会抛出一个异常,告诉用户线程已经无法负荷
// 3.CallerRunsPolicy 谁提交来的线程,丢给他自己执行
// 4.DiscardPolicy 直接丢弃当前任务
// 那么拒绝策略一般用在任务太多保存不下了,丢到数据库中保存,当有空的时候调出来继续执行

// 参数keepAliveTime: 线程空闲时候的存活时间,这个参数主要针对核心线程也就是corePoolSize之外的线程
// 参数unit:空闲线程存活的时间单位

// ThreadPoolExecutor类的重要变量:
// 1.prestartCoreThread: 当设置成true时,那么实例化的就会把corePoolSize参数设置的线程全部启动,比如传了5个线程,那么都会new出来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值