asyncService.helo();//停3秒
return “OK”;
}
}
4.运行时并没有直接就返回OK,而是在三秒后才返回,期间可以看到刷新按钮一直是加载的状态,由此可以看出该异步是做到了,所有任务执行完成才返回,任务执行时间正常,主线程等待其他线程完成后结束。
异步了解了也可以看看同步的效果
首先引依赖
org.projectlombok
lombok
创建任务服务类(未做异步处理)、加入容器
package com.hh.service;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@Component
@Slf4j
public class MyJobService {
public void printJob() throws InterruptedException {
log.info(“开始任务一。。。。”);
long start = System.currentTimeMillis();
Thread.sleep(5000);
long end = System.currentTimeMillis();
log.info(“完成任务一,耗时:” + (end - start) + “毫秒”);
}
public void printJob2() throws InterruptedException {
log.info(“开始任务二。。。。”);
long start = System.currentTimeMillis();
Thread.sleep(4000);
long end = System.currentTimeMillis();
log.info(“完成任务二,耗时:” + (end - start) + “毫秒”);
}
public void printJob3() throws InterruptedException {
log.info(“开始任务三。。。。”);
long start = System.currentTimeMillis();
Thread.sleep(3000);
long end = System.currentTimeMillis();
log.info(“完成任务三,耗时:” + (end - start) + “毫秒”);
}
}
控制器
package com.hh.controller;
import com.hh.service.MyJobService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@Slf4j
public class JobContro