直接看代码吧!
控制层:
@PostMapping("/test")
@ApiOperation(value = "test", notes = "test")
public void autoAccept() {
long l = System.currentTimeMillis();
LinkedHashMap<String, Future<String>> futureMap = new LinkedHashMap<>();
for (int i = 0; i < 15; i++) {
//需要执行的任务
Future<String> future = statementBusinessService.aaa(i);
futureMap.put(i + "", future);
}
List<String> arrayList = new ArrayList();
//解析返回的数据
for (String k : futureMap.keySet()) {
try {
String s = futureMap.get(k).get();
arrayList.add(k + "-" + s);
} catch (Exception e) {
e.printStackTrace();
}
}
long l1 = System.currentTimeMillis();
System.out.println("执行时间:" + (l1 - l) + "-----" + arrayList);
}接口层就不写了,没有关键点!
服务层:
@Override
//注意加注解参数为线程池名
@Async("statementExecutor")
public Future<String> aaa(int i) {
//在这里调用了处理数据的方法
return new AsyncResult(aa(i));
}
public String aa(int i){
try {
Thread.sleep(i * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
return i+"";
}
本人自己学习简单写的例子,起名不规范请勿学习!!!
版权声明:本文为qq_37782946原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。