线程池提交任务的步骤

1.创建线程池
线程池一共有七个关键词
corePoolSize:线程核心数,即默认数量
maximumPoolSize:请求过多,队列满时可以支持的最大线程数
keepAliveTime: maximumPoolSize中多余线程可以空闲存活的最长时间
unit:存活时间的时间单位
workQueue:是阻塞队列,也是超过corePoolSize线程数量的任务暂时存放的地方
ThreadFactory:创建线程的方式,可以创建出来的线程进行一些参数的改动
RejectedExecutionHandler:拒绝策略,当阻塞队列满且超过了maximumPoolSize线程数量执行的策略
2.提交任务
首先会判断当前线程数是否达到最大corePoolSize的连接数,如果不是,则加入线程中执行,否则判断阻塞队列是否为满,如果没满,则加入至阻塞队列,否则,检查线程数是否达到maximumPoolSize,如果没达到,则新开一个线程来执行任务,否则,就采用拒绝策略,拒绝策略分为四种:
1.抛出异常
2.丢弃该任务
3.将最先加入的任务删除并加入到队头
4.让调用线程池的线程来执行该任务

大家一起快乐学Java 文章被收录于专栏

本人2021届应届本科生毕业于浙江海洋大学,校招拿到BAT等大厂offer,本专栏的目的是分享一些校招面试过程中的一些重要知识点,以及当前比较流行的技术底层原理和一些面试问的较多的知识点的剖析。后续也会分享一些在阿里工作过程中遇到的一些问题,把问题抽象出来给出我的思路,大家可以一起来思考,互相促进,互相学习。

全部评论
博主写的很好,666
点赞
送花
回复
分享
发布于 2020-03-22 14:13
博主写的很好,666
点赞
送花
回复
分享
发布于 2020-11-10 14:59
滴滴
校招火热招聘中
官网直投
你也相信光吗
点赞
送花
回复
分享
发布于 2022-07-19 20:53

相关推荐

3 1 评论
分享
牛客网
牛客企业服务