service中的两个线程方法
@Slf4j
@Service
public class Score {
@Async
public void addScore(){
try {
Thread.sleep(5000);
log.info("处理积分1");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
@Async("scorePoolTaskExecutor")
public void addScore2(){
try {
Thread.sleep(5000);
log.info("处理积分2");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
在控制器中调用这个方法时,会先执行控制器中的方法,
@Configuration
@EnableAsync
@Autowired
private Score score;
@GetMapping("/score1")
public String score1(){
log.info("这是主线程");
this.score.addScore();
return "ok";
}
可以看到输出这是主线程和过5秒后输出处理积分1,是不同的线程
但是会立刻输出okÿ