新手也能看懂的 SpringBoot 异步编程指南
2024-09-01 12:19:47
本文已经收录自 springboot-guide : https://github.com/Snailclimb/springboot-guide (Spring Boot 核心知识点整理。 基于 Spring Boot 2.19+。)
新手也能看懂的 SpringBoot 异步编程指南
通过本文你可以了解到下面这些知识点:
- Future 模式介绍以及核心思想
- 核心线程数、最大线程数的区别,队列容量代表什么;
ThreadPoolTaskExecutor
饱和策略;- SpringBoot 异步编程实战,搞懂代码的执行逻辑。
Future 模式
异步编程在处理耗时操作以及多任务处理的场景下非常有用,我们可以更好的让我们的系统利用好机器的 CPU 和 内存,提高它们的利用率。多线程设计模式有很多种,Future模式是多线程开发中非常常见的一种设计模式,本文也是基于这种模式来说明 SpringBoot 对于异步编程的知识。
实战之前我先简单介绍一下 Future 模式的核心思想 吧!。
Future 模式的核心思想是 异步调用 。当我们执行一个方法时,假如这个方法中有多个耗时的任务需要同时去做,而且又不着急等待这个结果时可以让客户端立即返回然后,后台慢慢去计算任务。当然你也可以选择等这些任务都执行完了,再返回给客户端。这个在 Java 中都有很好的支持,我在后面的示例程序中会详细对比这两种方式的区别。
SpringBoot 异步编程实战
如果我们需要在 SpringBoot 实现异步编程的话,通过 Spring 提供的两个注解会让这件事情变的非常简单。
@EnableAsync
:通过在配置类或者Main类上加@EnableAsync开启对异步方法的支持。@Async
可以作用在类上或者方法上,作用在类上代表这个类的所有方法都是异步方法。
1. 自定义 TaskExecutor
很多人对于 TaskExecutor 不是太了解,所以我们花一点篇幅先介绍一下这个东西。从名字就能看出它是任务的执行者,它领导执行着线程来处理任务,就像司令官一样,而我们的线程就好比一只只军队一样,这些军队可以异步对敌人进行打击
最新文章
- Flux 普及读本
- 移动应用开发测试工具Bugtags集成和使用教程
- 2015年12月01日 GitHub入门学习(三)GitHub创建仓库
- ajax读取XML文本(如读取城市)
- iOS 使用UIView的一种有效方法
- SequoiaDB版本升级及导入导出工具说明
- SVG动画实践篇-模拟音量高低效果
- 常用PHP函数整理
- angular指令ng-class巧用
- Ionic 常用组件解析
- c# typeof 与 GetType 作用与区别
- 242. Valid Anagram(leetcode)
- java 接口测试,使用excel做数据驱动(二)
- JMS基础篇(二)
- Flask上下文管理源码分析 ——(3)
- 牛客网PAT乙级(Basic Level)真题-数字分类 (20)
- wordpress模板里加keywords和description
- python私有公有属性
- Sequelize-nodejs-3-model definition
- 2008ZJOI树的统计
热门文章
- Imageio: 'ffmpeg-win32-v3.2.4.exe' was not found on your computer; downloading it now.
- mybatis if判断两个值是否相等存在的坑啊
- Sublime Text 3 中实现编译C语言程序
- CentOS升级内核方法
- 07 (OC)* XIB原理和Xib、storyBoard、代码的优缺点
- 主动降噪技术(ANC)的前生今世--概念历史
- Falsk中的Request、Response
- Mac搭建pyhton+selenium+pycharm实现web自动化测试
- JDK 13 都已经发布了,Java 8 依然是最爱
- opencv调整图像亮度对比度