Springboot中Async异步的使用 发表于 2020-11-12 为了降低用户得到反馈的时间,有些时候我们采用异步处理去获得消息,比较常见的是MQ,今天记录的是Springboot自带的@Async注解 123456789101112131415161718// 开启异步@Configuration@EnableAsyncpublic class AsyncConfig implements AsyncConfigurer { @Override public Executor getAsyncExecutor() { ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor(); //核心线程数 taskExecutor.setCorePoolSize(8); //最大线程数 taskExecutor.setMaxPoolSize(16); //队列大小 taskExecutor.setQueueCapacity(100); taskExecutor.initialize(); return taskExecutor; }} 1234567891011121314151617181920212223242526// 使用方法@Asyncpublic Future<TPromotionSeckill> update() throws InterruptedException { Thread.sleep(5000); System.out.println("开始异步执行任务"); TPromotionSeckill promotionSeckill = service.updateByPrimaryKeySelective(); System.out.println("结束异步执行任务"); return new AsyncResult<>(promotionSeckill);}@Testpublic void update() throws InterruptedException, ExecutionException, IOException { // 异步操作,无需等待结果,先执行接下去的 Future<TPromotionSeckill> update = asy.update(); System.out.println("先进行这一步"); // 循环等待直到先前异步的操作有结果后,获得结果后,程序才继续进行下去 TPromotionSeckill seckill = update.get(); System.out.println("最后进行这一步");}Result-----------------------------------------------------------------------先进行这一步开始异步执行任务结束异步执行任务最后进行这一步 赏个🍗吧 打赏 微信支付 支付宝 本文作者: Keeep 本文链接: http://Keeep.coding.me/blog/Springboot中Async异步的使用/ 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!