如果不自定义异步方法的线程池默认使用SimpleAsyncTaskExecutor。SimpleAsyncTaskExecutor:不是真的线程池,这个类不重用线程,每次调用都会创建一个新的线程。并发大的时候会产生严重的性能问题。

定义通用线程池

@EnableAsync
@Configuration
public class ThreadTestConfig {@Beanpublic Executor taskExecutor() {ThreadPoolTaskExecutor pool = new ThreadPoolTaskExecutor();pool.setCorePoolSize(5); //线程池活跃的线程数pool.setMaxPoolSize(10); //线程池最大活跃的线程数pool.setWaitForTasksToCompleteOnShutdown(true);pool.setThreadNamePrefix("lalala");return pool;}
}

@Async默认使用Bean Name为executor的线程池。也可以根据Bean Name指定特定线程池

@Async("taskExecuter")
  public void asyncMethod() {
    sleep(10);
    System.out.println("async");
  }

不自定义异步方法的线程池默认使用SimpleAsyncTaskExecutor相关推荐

  1. 高并发编程-自定义简易的线程池(2),体会原理

    文章目录 概述 示例 概述 高并发编程-自定义简易的线程池(1),体会原理 中只实现了任务队列,我们这里把其余的几个也补充进来 拒绝策略 关闭线程池 最小 最大 活动线程数 - 示例 比较简单,直接上 ...

  2. 线程池默认多少个线程_我需要多少个线程?

    线程池默认多少个线程 这取决于您的应用程序. 但是,对于那些希望对如何从生产站点购买的所有昂贵内核中挤出大量资金的人,请多多包涵,我将阐明围绕多线程 Java应用程序的奥秘. 内容针对最典型的Java ...

  3. 高并发编程-自定义简易的线程池(1),体会原理

    文章目录 概述 示例 概述 我们工作中,并发编程必然离不开jdk提供的j.u.c中的线程池 ,假设让我们自己去设计一个线程池,该从哪几个方面来着手考虑呢? 首先: 既然是线程池 , 那必然 有个初始化 ...

  4. Tomcat - Springboot启动的时候初始化的线程池默认配置

    server:     port: 12021     tomcat:       uri-encoding: UTF-8       max-threads: 1000        #最大并发数 ...

  5. async spring 默认线程池_SpringBoot中Async异步方法和定时任务介绍

    1.功能说明 Spring提供了Async注解来实现方法的异步调用.即当调用Async标识的方法时,调用线程不会等待被调用方法执行完成即返回继续执行以下操作,而被调用的方法则会启动一个独立线程来执行此 ...

  6. async spring 默认线程池_springboot-@Async默认线程池导致OOM问题

    转 springboot-@Async默认线程池导致OOM问题 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 前言: 1.最近项目上在测试人员压 ...

  7. async spring 默认线程池_Spring boot注解@Async线程池实例详解

    这篇文章主要介绍了Spring boot注解@Async线程池实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 从Spring3开始提供了@A ...

  8. @async 默认线程池_springboot@Async默认线程池导致OOM问题

    地址:http://suo.im/5Y3RGF 作者:ignorewho 前言: 最近项目上在测试人员压测过程中发现了OOM问题,项目使用springboot搭建项目工程,通过查看日志中包含信息:un ...

  9. 【Java 并发编程】线程池机制 ( 线程池阻塞队列 | 线程池拒绝策略 | 使用 ThreadPoolExecutor 自定义线程池参数 )

    文章目录 一.线程池阻塞队列 二.拒绝策略 三.使用 ThreadPoolExecutor 自定义线程池参数 一.线程池阻塞队列 线程池阻塞队列是线程池创建的第 555 个参数 : BlockingQ ...

最新文章

  1. MSP430学习笔记6-动态数码管的显示
  2. 探访物联网安全新边界 文印保护成思维盲区
  3. Java回顾之多线程同步
  4. RTMPdump(libRTMP) 源代码分析 5: 建立一个流媒体连接 (NetConnection部分)
  5. leetcode —— 1. 两数之和
  6. 基于麻雀搜索算法优化概率神经网络PNN的分类预测-附代码
  7. java拼接sql字符串
  8. 信息系统项目管理知识记忆口诀-总结
  9. fast无线路由器设置服务器,迅捷(FAST)FW300R无线路由器怎么设置
  10. android 动态表情包,搞笑斗图动态表情包
  11. IDEA使用教程之创建一个工程(一)
  12. 多核芯片间的核间通信IPC机制
  13. 线程池的设计与原理解析(二)之---execute()方法
  14. 上次送女神死亡芭比粉口红后,我痛定思痛
  15. [小记] 微信小程序 - 人脸识别前端(一)初体验
  16. 单元格颜色公式之明细数据项隔行底纹
  17. NASA全球生态系统动态调查激光雷达(GEDI)
  18. Hanselminutes播客55-MonoRail作为替代ASP.NET
  19. 怎么把一张普通照片变成证件照?这样做其实非常简单
  20. PCIE-5565PIORC GE 光纤网络节点卡

热门文章

  1. static的应用以及静态与非静态的区别
  2. 堆栈溢出从入门到提高
  3. hdu 4409 Family Name List LCA +stl
  4. [举一反三]使用javascript转换字符串为dom对象(字符串动态创建dom)
  5. 电路宽度测量halcon例子
  6. 学习笔记(09):Python网络编程并发编程-模拟ssh远程执行命令-代码实现
  7. Pytorch基础(三)—— DataSet的应用
  8. Dlib机器学习库安装
  9. 装 linux后 win7消失了,win7系统重装后ubuntu启动消失不见的解决方法
  10. android 文件选择器_Android 开发 打开系统文件、图片、视频等 实现单选多选功能...