@Async实现异步调用
使用@Async实现异步调用
启动main类上加上@EnableAsync ,需要执行异步方法上加入@Async
相当于启了一个线程进行执行
示例
controller中
@ResponseBody
@RequestMapping("/sedSms")
public String sedSms() {
System.out.println("###indexController### 1");
userService.sedSms();
System.out.println("###indexController### 4");
return "success";
}
userService中
@Async
public void sedSms() {
System.out.println("##sedSms##开始执行.. 2");
for (int i = 0; i < 5; i++) {
try {
Thread.sleep(1000);
} catch (Exception e) {
// TODO: handle exception
}
System.out.println("i:" + i);
}
System.out.println("##sedSms##结束执行.. 3");
}
相当于userService中的sedSms创建了一个子线程去执行。
当访问localhost:8080/sedSms时,主线程则先输出
###indexController### 1
###indexController### 4
....
##sedSms##开始执行.. 2
##sedSms##结束执行.. 3
Last updated
Was this helpful?