@Async 注解
2020-07-12 本文已影响0人
Aaron_Lzz
@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线程关联,但是执行顺序和调用顺序没有关系,执行顺序是按照方法在类中的顺序执行的。