SpringBoot使用线程池
软件环境
名称 | 版本 |
---|---|
jdk | 1.8 |
springboot | 2.1.6 |
maven | 3.3.9 |
1.Java中创建线程池
只会介绍java中线程池的核心类ThreadPoolExecutor,其他用法请自行查询
1.1 ThreadPoolExecutor类介绍
jdk1.8 源码 删减部分内容
ThreadPoolExecutor的执行流程如下:
jdk默认提供四种RejectedExecutionHandler接口的实现
- AbortPolicy: 直接抛出RejectedExecutionException异常
- CallerRunsPolicy: 交由主线程执行
- DiscardOldestPolicy: 抛弃工作队列中旧的任务,将新任务添加进队列;会导致被丢弃的任务无法再次被执行
- DiscardPolicy: 抛弃当前任务;会导致被抛弃的任务无法再次被执行
当然你也可以自定义拒绝策略,只需要实现RejectedExecutionHandler接口即可
2.Spring中创建线程池
2.1 ThreadPoolTaskExecutor类介绍
从源码中可以看出ThreadPoolTaskExecutor就是在java中ThreadPoolExecutor的基础上封装的
3.线程池使用示例
3.1 使用ThreadPoolTaskExecutor
- pom文件
- config类
我们需要通过SpringBoot的配置类来配置线程池的Bean和对应的参数
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!