@Async 注解

作者: Aaron_Lzz | 来源:发表于2020-07-12 23:35 被阅读0次

@Async 注解

异步注解可以标注在一个类或者一个方法上面(不包含静态方法和构造方法);使用这个注释的前提条件是在启动类上标注了@EnableAsync来打开异步。

  • 标注在类上面表示这个类的所有方法是异步方法;
  • 标注在方法上只表示当前方法为异步方法;
@EnableAsync
@Component
@SpringBootApplication
public class CountNumber {

  @Async
  public void print1(){
    System.out.println("print1-"+Thread.currentThread().getName());
    for(int i=0;i<10;i++){
      System.out.println("print1-"+i);
    }
  }

  @Async
  public void print2(){
    System.out.println("print2-"+Thread.currentThread().getName());
    for(int i=0;i<10;i++){
      System.out.println("print2-"+i);
    }
  }

  public static void main(String[] args) {
    ConfigurableApplicationContext content = SpringApplication.run(CountNumber.class, args);
    CountNumber countNumber = content.getBean(CountNumber.class);
    countNumber.print2();
    countNumber.print1();
    System.out.println("main-"+Thread.currentThread().getName());
    for (int i=0;i<10;i++){
      System.out.println("--------------");
    }
  }

}

注:

  • 不能标注在构造方法上面;
  • 不能标注在静态方法上面;
  • 每个标注的方法会和一个task线程关联,但是执行顺序和调用顺序没有关系,执行顺序是按照方法在类中的顺序执行的。

相关文章

网友评论

    本文标题:@Async 注解

    本文链接:https://www.haomeiwen.com/subject/ojlocktx.html