背景
其实我们经常碰到这样的场景:自定义线程池,然后把业务代码丢到线程池中异步执行。代码在执行的时候,将会在独立的线程中被执行,我们无需等待它的完成,也无需关心它的调用结果。
ThreadPoolTaskExecutor
新建一个spring项目(点击https://start.spring.io/,根据需要命名,选择Maven或者Gradle,下载压缩包,在IDE中打开解压缩后的文件夹即可。)
线程池参数配置
可具体根据业务场景需要在配置文件(resources/application.properties)中可设置线程池参数,也可以单独创建一个xxx.properties文件。
# 核心线程数
async.executor.thread.core_pool_size=5
# 最大线程数
async.executor.thread.max_pool_size=8
# 任务队列大小
async.executor.thread.queue_capacity=2
# 线程池中线程的名称前缀
async.executor.thread.name.prefix=async-service-
# 缓冲队列中线程的空闲时间
async.executor.thread.keep_alive_seconds=100