SpringBoot @Async如何自定义线程池及使用教程

 更新时间:2024年01月22日 15:08:31   作者:知识浅谈  
这篇文章主要介绍了SpringBoot @Async如何自定义线程池及使用教程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

看别的教程一大堆废话,直接上干货不行吗,直接看下边例子

🎈配置异步线程池

@EnableAsync
@Configuration
public class AsyncConfiguration {
    //定义线程池
    @Bean("threadPool1") // bean的名称,线程池的bean的名字,不是创建线程的名字
    public Executor ThreadPool1(){
        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
        executor.setCorePoolSize(10); /** 核心线程数(默认线程数) */
        executor.setMaxPoolSize(20);/** 最大线程数 */
        executor.setQueueCapacity(500);/** 缓冲队列大小 */
        executor.setKeepAliveSeconds(60);/** 允许线程空闲时间(单位:默认为秒) */
        executor.setWaitForTasksToCompleteOnShutdown(true); 
        executor.setThreadNamePrefix("task-thread-"); /** 线程池名前缀 */
        executor.setRejectedExecutionHandler(new ThreadPoolExecutor.DiscardPolicy()); //拒绝策略:缓存队列满了之后由调用线程处理,一般是主线程
        executor.initialize();
        return executor;
    }
}

🎈异步方法

@RestController("/test")
public class Test2Controller {
    @Async("threadPool1")
    public void test1() throws InterruptedException {
        Thread.sleep(5000);
        System.out.println("test1");
    }
}

🎈调用异步方法

@Api("测试")
@RestController
@RequestMapping("/test/user")
public class TestController extends BaseController
{
    @Autowired
    private Test2Controller test2Controller;
    @ApiOperation("异步")
    @GetMapping("/testAsync")
    public String testAsync() throws InterruptedException {
        test2Controller.test1();
        return "async";
    }
}

结果:
结果直接返回:test1 5秒后打印出来。

🍚总结

到此这篇关于SpringBoot @Async如何自定义线程池以及使用教程的文章就介绍到这了,更多相关SpringBoot @Async自定义线程池内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 一篇文章带你了解jdk1.8新特性--为什么使用lambda表达式

    一篇文章带你了解jdk1.8新特性--为什么使用lambda表达式

    Lambda是一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码,本篇文章就带你了解,希望能给你带来帮助
    2021-08-08
  • 启动Tomcat时出现大量乱码的解决方法

    启动Tomcat时出现大量乱码的解决方法

    今天给大家带来的是关于Java的相关知识,文章围绕着启动Tomcat时出现大量乱码的解决方法展开,文中有非常详细的介绍及图文示例,需要的朋友可以参考下
    2021-06-06
  • 基于java实现颜色拾色器并打包成exe

    基于java实现颜色拾色器并打包成exe

    这篇文章主要为大家详细介绍了如何基于java编写一个简单的颜色拾色器并打包成exe文件,文中的示例代码讲解详细,需要的小伙伴可以跟随小编一起学习一下
    2023-10-10
  • SpringBoot与SpringCache概念用法大全

    SpringBoot与SpringCache概念用法大全

    这篇文章主要介绍了SpringBoot与SpringCache的概念及基本用法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • Spring Cloud升级最新Finchley版本的所有坑

    Spring Cloud升级最新Finchley版本的所有坑

    这篇文章主要介绍了Spring Cloud升级最新Finchley版本的所有坑,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • Java和Android崩溃捕获机制

    Java和Android崩溃捕获机制

    这篇文章主要为大家介绍了Java和Android崩溃捕获机制详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • spring中的ObjectPostProcessor详解

    spring中的ObjectPostProcessor详解

    这篇文章主要介绍了spring中的ObjectPostProcessor详解,Spring Security 的 Java 配置不会公开其配置的每个对象的每个属性,这简化了大多数用户的配置,毕竟,如果每个属性都公开,用户可以使用标准 bean 配置,需要的朋友可以参考下
    2024-01-01
  • 浅谈springboot自动配置原理

    浅谈springboot自动配置原理

    这篇文章主要介绍了浅谈springboot自动配置原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • Spring Boot 2.4 对多环境配置的支持更改示例代码

    Spring Boot 2.4 对多环境配置的支持更改示例代码

    这篇文章主要介绍了Spring Boot 2.4 对多环境配置的支持更改,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • 浅谈java中math类中三种取整函数的区别

    浅谈java中math类中三种取整函数的区别

    下面小编就为大家带来一篇浅谈java中math类中三种取整函数的区别。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11

最新评论