何为异步
需要区分的是同步就是顺序执行,等一次调用返回结果才会执行下一次调用,如果调用出现迟缓,程序也会出现迟缓
异步则只是发送了调用的命令,然后不再等待调用结果继续向下执行,减少迟缓
异步(注解方式)
在Spring中,基于@Async
标注的方法,称之为异步方法;这些方法将在执行的时候,将会在独立的线程中被执行,调用者无需等待它的完成,即可继续其他的操作
在spring3后提供注解支持,内置了@Async
注解完成异步任务
- @EnableAsync: 用在主配置类上,支持异步
- @Async:放在需要异步执行的方法上
@SpringBootApplication
@EnableAsync
public class AsyncApplication {
public static void main(String[] args) {
SpringApplication.run(AsyncApplication.class, args);
}
}
@Async
public void say() {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("异步执行");
}
在测试时发现并没有在主配置类上添加支持也可以