多线程异步任务
来源:互联网 发布:磁铁车牌号码贴 淘宝 编辑:程序博客网 时间:2024/06/16 20:59
Spring通过任务执行器(TaskExecutor)来实现多线程和并发。可使用ThreadPoolTaskExecutor来实现;
1.利用@EnableAsync开启异步任务支持
2.配置实现AsyncConfigurer接口的类并重写getAsyncExecutor方法得到基于线程池的TaskExecutor
@Configuration@EnableAsyncpublic class TaskConfig implements AsyncConfigurer { @Override public Executor getAsyncExecutor() { ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor(); taskExecutor.setCorePoolSize(5); taskExecutor.setMaxPoolSize(10); taskExecutor.setQueueCapacity(25); taskExecutor.initialize(); return taskExecutor; } @Override public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() { return null; }}
任务类
@Service@Async //可用于具体方法 类上标识此类方法全部是异步方法public class AsyncTaskService { public void executeTask(Integer i){ System.err.println("异步任务..."+i); } public void executeTask2(Integer i){ System.err.println("异步任务2..."+i); }}
执行
AsyncTaskService service = context.getBean(AsyncTaskService.class); for(int i=0;i<10;i++){ service.executeTask(i); service.executeTask2(i); }
结果
异步任务...0异步任务2...0异步任务2...2异步任务...3异步任务...2异步任务...1异步任务2...1异步任务2...5异步任务...6异步任务2...6异步任务...7异步任务2...7异步任务...8异步任务2...8异步任务...9异步任务2...9异步任务...5异步任务2...4异步任务...4异步任务2...3
并发执行而不是顺序执行
0 0
- 多线程与异步任务
- 多线程异步任务
- 多线程,异步任务处理机制
- PHP异步调用、多线程、计划任务
- Android多线程编程-异步任务总结
- [django] 利用多线程增加异步任务
- Swift中多线程和异步任务
- Android 多线程----AsyncTask异步任务详解
- 开启多线程退出后终止异步任务
- 多线程--异步任务AsyncTask由浅入深探究
- 异步任务和多线程的区别
- Android多线程异步任务,在主线程中回调
- Android 多线程----AsyncTask异步任务详解
- 进程/多线程/同步任务/异步任务/串行队列/并行队列
- 15-多线程编程(01-AsyncTask异步任务介绍一)
- 15-多线程编程(02-AsyncTask异步任务介绍二)
- Android多线程与异步任务学习笔记(一)
- Android进阶——多线程和异步任务小结
- 年终总结
- Android Studio中创建JAVA应用程序步骤
- 微信小程序初探
- 【H.264/AVC视频编解码技术详解】十二、解析H.264码流的宏块结构(下):H.264帧内编码宏块的预测结构
- SPOJ - MKEQUAL E - Make them equal ! 水题
- 多线程异步任务
- 本地Apache服务器访问时502 Server dropped connection 错误解决方法
- 定时任务
- SpringMVC和 Struts2的比较
- @Conditional条件注解
- 打包成war
- codeforces Good Bye 2016
- 优雅编程之阿里巴巴开发规范分享及扩展学习(三十八)
- Github 简明教程