Spring的异步线程处理方法是什么
发表于:2025-01-31 作者:千家信息网编辑
千家信息网最后更新 2025年01月31日,这篇文章主要介绍"Spring的异步线程处理方法是什么",在日常操作中,相信很多人在Spring的异步线程处理方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"S
千家信息网最后更新 2025年01月31日Spring的异步线程处理方法是什么
这篇文章主要介绍"Spring的异步线程处理方法是什么",在日常操作中,相信很多人在Spring的异步线程处理方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Spring的异步线程处理方法是什么"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
Spring封装了JDK的线程池和线程调用,并使用标签就可以开启多线程调用。
先进行一个Spring的线程池配置
@Configuration@EnableAsyncpublic class ThreadPoolConfig implements AsyncConfigurer {@Bean @Override public Executor getAsyncExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); executor.setCorePoolSize(Runtime.getRuntime().availableProcessors()); executor.setMaxPoolSize(Runtime.getRuntime().availableProcessors() * 5); executor.setQueueCapacity(Runtime.getRuntime().availableProcessors() * 2); executor.setThreadNamePrefix("this-executor-"); executor.initialize(); return executor; }@Bean @Override public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {return new SimpleAsyncUncaughtExceptionHandler(); }}
再编写一个Service的异步方法调用,这里是带返回值的,不带返回值的方法比较简单,这里就不举例了。
@Service@Slf4jpublic class ThreadTasks {/** * 如果异步方法有返回值,一定要使用Future包装,否则无法返回 * @return * @throws InterruptedException */ @Async public FuturestartTask() throws InterruptedException { Thread.sleep(3000); log.info("this is async task"); return new AsyncResult<>("123456"); }}
最后写一个Controller,对该异步方法进行调用
@RestControllerpublic class AsyncTaskController {@Autowired private ThreadTasks tasks; @GetMapping("/users-anon/useTask")public String useSyncTask() throws InterruptedException, ExecutionException { Futurefuture = tasks.startTask(); return future.get(); }}
最后运行下来,我们可以看到每次都是不同的线程执行
2020-09-21 16:33:53.027 INFO [user-center,3e635fca3d1259da,d30e8b6372922137,false] 1126 --- [this-executor-1] com.cloud.user.service.ThreadTasks : this is async task2020-09-21 16:35:27.664 INFO [user-center,9b68efbb2c848d7b,895ed921f6c8fe03,false] 1126 --- [this-executor-2] com.cloud.user.service.ThreadTasks : this is async task
到此,关于"Spring的异步线程处理方法是什么"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
方法
线程
处理
学习
更多
帮助
不同
实用
接下来
文章
标签
理论
知识
篇文章
网站
资料
跟着
问题
好用
包装
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
关于网络安全的儿童手抄报加字
监管事业单位网络安全
政协委员关于网络安全的提案
合肥新华三软件开发维护岗
服务器安全防护方案
数据库常用日志
数据库为什么汉字是问号
手机网络安全教育视频
陕西华表网络技术公司
xshell远程连接服务器失败
辽宁特色软件开发特征
自考计算机网络技术学什么
股市服务器
襄阳保康招聘网络安全工程师
思科服务器登录管理口
什么单位招软件开发人员
海淀区质量软件开发平台
普洱网络安全工程师招聘
软件开发工程师 发现方向
柯美扫描设置服务器无响应
梦幻模拟战数据库wiki
加上网络安全工作的意见建议
方舟服务器怎么让装备没耐久
操作数据库神器下载
数据库技术A实验报告册
如何实时抽取数据库
网络安全风险的升级
软件开发发票货物名称
微商团队打造 管理 服务器
数据库连接使用的设计模式