首页 > 作文

springboot使用线程池(ThreadPoolTaskExecutor)示例

更新时间:2023-04-04 05:14:27 阅读: 评论:0

目录
线程池创建线程池参数线程池测试1(核心线程数量)线程池测试2(当核心线程数量和最大线程数量不够时)总结

代码仓库:gitee

线程池创建

@configuration@enableasy高考几号ncpublic class taskpoolconfig {    @bean("syncexecutorpool")    public executor taskexecutor() {        threadpooltaskexecutor taskexecutor = nrvice是什么意思ew threadpooltaskexecutor();        // 核心池大小        taskexecutor.tcorepoolsize(5);        // 最大线程数        taskexecu近日点tor.tmaxpoolsize(10);        // 队列程度        taskexecutor.tqueuecapacity(100);        // 线程空闲时间        taskexecutor.tkeepaliveconds(60);        // 线程前缀名称        taskexecutor.tthreadnameprefix("syncexecutor--");        // 该方法用来设置 军训收获线程池关闭 的时候 等待 所有任务都完成后,再继续 销毁 其他的 bean,        // 这样这些 异步任务 的 销毁 就会先于 数据库连接池对象 的销毁。        taskexecutor.twaitfortaskstocompleteonshutdown(true);        // 任务的等待时间 如果超过这个时间还没有销毁就 强制销毁,以确保应用最后能够被关闭,而不是阻塞住。        taskexecutor.tawaitterminationconds(60);        // 线程不够用时由调用的线程处理该任务        taskexecutor.trejectedexecutionhandler(new threadpoolexecutor.callerrunspolicy());        return taskexecutor;    }}

线程池参数

核心线程数量:corepoolsize
看业务场景设置(我通常设置为cpu核心*1)

最大线程数量:maxpoolsize
当核心线程数量都在使用状态时,会调用最大线程数量里的线程,使用的总线程不会超过最大线程数量,其余则等待(我通常设置为cpu核心*2)

队列程度:queuecapacity
线程队列的大小

线程空闲时间:keepaliveconds

线程前缀名称:threadnameprefix

停机策略:waitfortaskstocompleteonshutdown
该方法用来设置 线程池关闭 的时候 等待 所有任务都完成后,再继续 销毁 其他的 bean,这样这些 异步任务 的 销毁 就会先于 数据库连接池对象 的销毁。

任务的等待时间:awaitterminationconds
任务的等待时间 如果超过这个时间还没有销毁就 强制销毁,以确保应用最后能够被关闭,而不是阻塞住

拒接策略:rejectedexecutionhandler
线程不够用时由调用的线程处理该任务

线程池测试1(核心线程数量)

结果:线程池的核心线程数量轮训执行

线程池测试2(当核心线程数量和最大线程数量不够时)

随机睡眠0-10000毫秒
new random().nextint(10000)

结果:

当5个核心线程数量不够用时,使用最大线程数量里的线程
当最大线程数量不够用时,使用主线程执行该任务

// 线程不够用时由调用的线程处理该任务
taskexecutor.trejectedexecutionhandler(new thre班级宣言adpoolexecutor.callerrunspolicy());

总结

到此这篇关于springboot使用线程池(threadpooltaskexecutor)示例的文章就介绍到这了,更多相关springboot线程池内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

本文发布于:2023-04-04 05:14:26,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/4ce2bab8d7f0c931d987e0a533e72f87.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:springboot使用线程池(ThreadPoolTaskExecutor)示例.doc

本文 PDF 下载地址:springboot使用线程池(ThreadPoolTaskExecutor)示例.pdf

下一篇:返回列表
标签:线程   数量   核心   时间
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图