#yyds干货盘点# springboot配置@Async异步任务的线程池

【#yyds干货盘点# springboot配置@Async异步任务的线程池】智慧并不产生于学历,而是来自对于知识的终生不懈的追求。这篇文章主要讲述#yyds干货盘点# springboot配置@Async异步任务的线程池相关的知识,希望能为你提供帮助。
springboot配置@Async异步任务的线程池
1.代码实现
在??#yyds干货盘点# springboot使用@Async实现异步调用??基础代码上进行修改
yml配置

spring:
task:
execution:
pool:
core-size: 2
max-size: 8
queue-capacity: 18
keep-alive: 60s
allow-core-thread-timeout: true
thread-name-prefix: task-



具体配置含义如下:
  • spring.task.execution.pool.core-size:线程池创建时的初始化线程数,默认为8
  • spring.task.execution.pool.max-size:线程池的最大线程数,默认为int最大值
  • spring.task.execution.pool.queue-capacity:用来缓冲执行任务的队列,默认为int最大值
  • spring.task.execution.pool.keep-alive:线程终止前允许保持空闲的时间
  • spring.task.execution.pool.allow-core-thread-timeout:是否允许核心线程超时
  • spring.task.execution.shutdown.await-termination:是否等待剩余任务完成后才关闭应用
  • spring.task.execution.shutdown.await-termination-period:等待剩余任务完成的最大时间
  • spring.task.execution.thread-name-prefix:线程名的前缀,设置好了之后可以方便我们在日志中查看处理任务所在的线程池
2.实现效果:
因为设置了2个核心线程,所以每次只运行2个任务。在实际使用上可以根据需求调节核心线程数量。
2021-12-29 16:49:58.921INFO 13716 --- [main] c.c.a.AsyncTaskApplicationTests: Started AsyncTaskApplicationTests in 1.642 seconds (JVM running for 3.272)
2021-12-29 16:49:59.232INFO 13716 --- [cxh-1] com.cxh.async_task.task.AsyncTasks: 开始做任务一
2021-12-29 16:49:59.232INFO 13716 --- [cxh-2] com.cxh.async_task.task.AsyncTasks: 开始做任务二
2021-12-29 16:50:00.935INFO 13716 --- [cxh-1] com.cxh.async_task.task.AsyncTasks: 完成任务一,耗时:1703毫秒
2021-12-29 16:50:00.937INFO 13716 --- [cxh-1] com.cxh.async_task.task.AsyncTasks: 开始做任务三
2021-12-29 16:50:04.233INFO 13716 --- [cxh-2] com.cxh.async_task.task.AsyncTasks: 完成任务二,耗时:5001毫秒
2021-12-29 16:50:05.240INFO 13716 --- [cxh-1] com.cxh.async_task.task.AsyncTasks: 完成任务三,耗时:4302毫秒
2021-12-29 16:50:05.241INFO 13716 --- [main] c.c.a.AsyncTaskApplicationTests: 任务全部完成,总耗时:6078毫秒



    推荐阅读