springboot实现线程异步

接到一个奇怪的需求,研发总监让我给我的溯源算法加一个线程,目的就是为了让前端知道请求成功了。可是我明明数据库会创建一条任务数据,我在写个后端接口不就好了吗?让他读后端接口去看是否成功就行,但是他说,这样前端很麻烦,那我。。。只能写个线程,当他请求成功了,就返回200,剩下的让线程自己去跑。谁让前端是个漂亮的妹子呢,可是有男朋友了。不然肯定能和她成为好朋友的。好了,接下来说正事。

基础知识


springBoot这个玩意儿,有一个BaseApplication的启动类,你不配置,它肯定也不会开启异步线程,谁没事开一堆东西,增加自己的内耗,所以和我们项目一样,需要的东西,我才会引入,springBoot也是如此。开启完成后,肯定要告诉你写的方法,让哪个方法作为单独的线程异步进行运行。springBoot的指令一般都是注解,这个也不例外。

那么你现在肯定也清晰了一些,知道接下来要做什么事情。

首先开启注解

在application的【类上面】加一个注解@EnableAsync

然后在你想要异步的方法上加一个@Async

代表他是异步

最后在主函数中调用即可。(不得不说,springBoot真的很方便,2个注解就完成了异步)

 瞬间返回200,并且查看日志,日志还在执行程序

最简单的异步

//异步执行,代码里把new Worker改成你的方法

new Thread(()->{
    try {
        Thread.sleep(5000);
        new Worker(jsonRequestParam,runMapper).run();
    } catch (InterruptedException e) {

    }
}).start();

参考文章:Spring Boot 创建及使用多线程_小鹅鹅的博客-CSDN博客_springboot线程

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]:在Spring Boot中实现线程异步可以通过使用注解来实现。首先,在启动类上加上注解@EnableAsync,这样就开启了异步功能。然后,在想要异步执行的方法上加上注解@Async,表示该方法是异步的。最后,在主函数中调用该方法即可实现异步执行。Spring Boot真的很方便,只需要这两个注解就可以完成异步操作。\[1\] 引用\[2\]:另外,可以通过设置corePoolSize来控制线程池的大小,从而实现更好的线程管理。例如,将corePoolSize设置为10,重启Spring Boot后,可以使用Jmeter同时调用接口多次,观察控制台日志可以看到多个线程同时执行,这样可以提高程序的运行效率。\[2\] 总结起来,Spring Boot实现线程异步的步骤如下: 1. 在启动类上加上注解@EnableAsync,开启异步功能。 2. 在想要异步执行的方法上加上注解@Async,表示该方法是异步的。 3. 在主函数中调用该方法即可实现异步执行。 4. 可以通过设置corePoolSize来控制线程池的大小,以优化线程管理。\[1\]\[2\] #### 引用[.reference_title] - *1* [springboot实现线程异步](https://blog.csdn.net/qq_38403590/article/details/119729294)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Springboot异步多线程编程](https://blog.csdn.net/baidu_28340727/article/details/122310314)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值