spring给我们提供了非常简便的线程池管理的包装类ThreadPoolTaskExecutor,本地启动一个为异步任务创建线程池的方法:
创建线程的方式:
1
<
bean
id
="threadPoolTaskExecutor"
2
class
="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"
>
3
<
property
name
="corePoolSize"
value
="5"
/>
4
<
property
name
="maxPoolSize"
value
="10"
/>
5
<
property
name
="queueCapacity"
value
="25"
/>
6
</
bean
>
corePoolSize:默认开启线程数;maxPoolSize:最大线程数;queueCapacity:缓冲任务队列的长度;
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
2
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
3
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
4
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
5
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
6
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
创建线程的方式:
1
threadPoolTaskExecutor.execute(new Runnable() {
2
public void run() {
3
//异步任务
4
}
5
});
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
2
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
3
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
4
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)
5
![](https://i-blog.csdnimg.cn/blog_migrate/4f1150b881333f12a311ae9ef34da474.gif)