多线程异步执行
框架内已集成:ThreadPoolTaskExecutor
异步两种实现方式:
-
手动注入
ThreadPoolTaskExecutor
线程池执行方式。栗子:
在接口方法中使用:
@Autowired
private ThreadPoolTaskExecutor executor;
@GetMapping("asyncExecute")
public Result asyncExecute(){
log.info("<-主线程");
executor.execute(()-> {
log.info("<-异步线程");// 常用:微信消息通知、发送短信等
});
return R.OK();
} -
使用
@Async
注解在实现类中使用: 当调用此方法时则会自定使用线程池去执行该方法。
@Async
@Override
public void sendSms(String... phoneNums) {
Console.log("执行逻辑...");
for (String phoneNum : phoneNums) {
System.out.println("正在发送短信 to \'"+phoneNum+"\'");
}
}