关于SpringBoot中多线程的两个注解:
@Async是spring为了方便开发人员进行异步调用而出现的。在方法上加入这个注解,spring会从线程池中获取一个新的线程来执行方法,实现异步调用
@EnableAsync表示开启对异步任务的支持,可以放在SpringBoot的启动类上,也可以放在自定义的配置上。
一:最简单的使用
在springBoot项目中,直接在启动类上加上@EnableAsync,然后在service层的方法上加上@Async,那么当controller调用该方法的时候,就会在主线程外自动新建线程执行该方法。
1.springboot启动类开启异步支持
@EnableAsync//开启异步任务支持
@SpringBootApplication
public class ThreadDemoApplication{
public static void main(String[] args){
SpringApplication.run(ThreadDemoApplication.class,args);
}
}
2、在service中编写测试方法
@Service
public class MutiThreadTest {
@Async
public void add() throws InterruptedException {
for (int i=0;i<=100;i++){
System.out.println(Thread.currentThread().getName()+":"+LocalDateTime.now().toLocalTime());
Thread.sleep(1000);
}
}
@Async
public void sub() throws InterruptedException {
for (int i=0;i<100;i++){
System.out.println(Thread.currentThread().getName()+":"+ LocalDateTime.now().toLocalTime());
Thread.sleep(2000);
}
}
}
标签:异步,SpringBoot,public,Async,多线程,class
From: https://www.cnblogs.com/rhy2103/p/16596219.html