java异步调用-Spring中@Async

  |   0 评论   |   0 浏览

何为异步调用

在解释异步调用之前,我们先来看同步调用的定义;同步就是整个处理过程顺序执行,当各个过程都执行完毕,并返回结果。
异步调用则是只是发送了调用的指令,调用者无需等待被调用的方法完全执行完毕;而是继续执行下面的流程。

例如, 在某个调用中,需要顺序调用 A, B, C三个过程方法;如他们都是同步调用,则需要将他们都顺序执行完毕之后,方算作过程执行完毕; 
如B为一个异步的调用方法,则在执行完A之后,调用B,并不等待B完成,而是执行开始调用C,待C执行完毕之后,就意味着这个过程执行完毕了。

如何在Spring中启用@Async。基于Java配置的启用方式(类上加两个注解):

@Configuration
@EnableAsync
public class SpringAsyncConfig {
  ...

}

基于@Async无返回值调用(方法加注解)

@Async  //标注使用 
public void asyncMethodWithVoidReturnType() { 
   System.out.println("ceshi");
}

备注

该类加上注解后, 别的类中通过该实例调取该方法才能实现异步,本类中自己调自己,不会异步