首页 > 其他分享 >spring boot @Async 使用的默认线程池

spring boot @Async 使用的默认线程池

时间:2024-01-24 17:25:15浏览次数:28  
标签:队列 spring boot 默认 线程 Async

线程池

核心线程池满了进队列, 队列满了创建新的线程.

结论

spring boot 从2.1开始 @Async 使用的是ThreadPoolTaskExecutor线程池, 2.1之前使用的是SimpleAsyncTaskExecutor.

ThreadPoolTaskExecutor

  • 此线程池的默认参数 核心线程数:8 队列容量:不限 最大线程数:不限
  • 从默认配置来看只有执行时间很短的任务默认配置才不用修改, 如果业务逻辑需要执行的时间比较长,或者由于代码缺陷导致核心线程不能被释放,那么队列中的任务会越来越多且不会被执行.
  • 因此使用@Async必须配置自定义线程池,或者修改默认线程池参数.

SimpleAsyncTaskExecutor

  • 此线程池会一直创建新的线程. 失去了线程池的优势,不推荐使用.

标签:队列,spring,boot,默认,线程,Async
From: https://www.cnblogs.com/mqyg/p/17985107

相关文章

  • WPF UI线程卡顿的一些理解
    WPFMVVM模型中线程分为UI线程(主线程)和其他线程(新建的线程)UI线程主要工作:1、负责响应外部的输入事件2、负责渲染UI界面,包括绘图、动画等其他线程:1、负责进行数据采集处理2、负责进行消息的分发 实际的工作中我们要合理使用线程,特别是大量的数据展示,图表动画渲染。不然很......
  • Python并发编程之进程间通信与线程间通信
    进程间通信与线程间通信【一】进程间通信(IPC)​ 进程间通信(Inter-ProcessCommunication,IPC)是指在不同进程之间进行数据交换和信息传递的机制。在多进程系统中,不同进程可能运行在不同的地址空间,因此需要一些特殊的方法来实现它们之间的通信。以下是一些常见的进程间通信的方法:......
  • 更新VS2022新版本后,高概率弹出“为防止...时出现不安全的中止,已允许所有线程进行。这
    目前我的VS版本是17.8.5:印象中上一个小版本的时候就已经出现这个问题了。自己的应用,点击调试的时候,高概率出现下面的对话框:但又不是每次都会出现。程序没有设置任何的断点。多个程序都会出现。目前不知道啥原因引起。......
  • Spring学习
    简单Spring代码1、BeanFactory和FactoryBean和BeanDefinitionBeanDefinition是Bean的定义。BeanFactory是Bean容器顶层接口。FactoryBean是用来创建Bean的,实现此接口的getBean方法可以通过此FactoryBean的名字获得Bean,如果想获得他本身则要转移&。2、容器 简单容器接......
  • 线程管理神器:Executors全面解析
    内容摘要Executors在Java中提供了快速创建线程池的能力,其优点显著:它简化了线程管理,减少了代码量;提供了多种类型的线程池以适应不同场景;通过复用线程,降低了资源消耗,提高了系统响应速度和吞吐量。使用Executors,开发者能够更专注于业务逻辑,而无需深入底层线程细节。官方文档:https:/......
  • 死磕Spring之IoC篇 - BeanDefinition 的解析过程(面向注解)
    BeanDefinition的解析过程(面向注解)前面的几篇文章对Spring解析XML文件生成BeanDefinition并注册的过程进行了较为详细的分析,这种定义Bean的方式是面向资源(XML)的方式。面向注解定义Bean的方式Spring的处理过程又是如何进行的?本文将会分析Spring是如何将 @Component......
  • Java21 + SpringBoot3整合Redis,使用Lettuce连接池,推荐连接池参数配置,封装Redis操作
    目录前言相关技术简介Redis实现步骤引入maven依赖修改配置文件定义Redis配置类定义Redis服务类,封装Redis常用操作使用Redis服务类总结前言近日心血来潮想做一个开源项目,目标是做一款可以适配多端、功能完备的模板工程,包含后台管理系统和前台系统,开发者基于此项目进行裁剪和扩展......
  • 在React中使用Bootstrap中的Modal并使用Js控制(非使用Bootstrap-React)
    在React中使用Bootstrap框架组件Render<buttonclassName='btnbtn-primarybtn-sm'onClick={()=>openModal()}>详细</button><divclassName="modalfade"id="info-modal"tabIndex={-1}aria-labelledby=""aria-h......
  • uboot-6_menuconfig/Kbuild图形化配置原理
    1ncurses库安装uboot或Linux内核可以通过输入“makemenuconfig”来打开图形化配置界面,menuconfig是一套图形化的配置工具,需要ncurses库支持。sudoapt-getinstallbuild-essentialsudoapt-getinstalllibncurses5-dev2menuconfig菜单使用说明和举例menuconfig重......
  • 使用Spring Boot实现基于HTTP的API
    SpringBoot是一个用于简化Spring应用程序开发的框架,它提供了一系列的开箱即用的功能,使得快速构建RESTfulWeb服务和基于HTTP的API变得简单。以下是使用SpringBoot实现基于HTTP的API的步骤:1. 添加依赖:在Maven项目中,将SpringBootWebStarter依赖添加到pom.xml文件中。2. java复......