新接手了一个项目,领导让熟悉一下,我看到同事以前写的代码,我看不懂线程为啥要这么用,我觉得这么做并不会提升性能吧,请各位大佬帮忙解答一下,谢谢。
@RestController
@RequestMapping("/dq")
public class AccessController extends BaseController {
@Resource
private IAccService iAccService;
private ExecutorService pool = null;
@RequestMapping(value = "/access")
@ResponseBody
public AccessDataRespDto qtApproveLoan(@RequestBody final AccessDataReqDto req) {
if (pool == null) {
pool = Executors.newFixedThreadPool(5);//设置线程池
}
Future<AccessDataRespDto> f = pool.submit(new Callable<AccessDataRespDto>() {
@Override
public AccessDataRespDto call() {
log.info("指标计算请求参数: [" + JSON.toJSONString(req) + "]");
String inSerialNum = GlobalConstant.DQ.concat(DateTools.getCurrentDate(DateTools.DATE_FORMAT2_8)).concat("_").concat(StringUtils.getUuid());
DqOutAccessDomain da = iAccService.installAccessInfo(req, null, "指标处理中", inSerialNum);
AccessDataRespDto resp = iAccService.getAccessInfo(req, da, inSerialNum);
return resp;
}
});
try {
return f.get();
} catch (Exception e) {
log.error("执行准入请求发送异常! MESSAGE:" + e.getMessage());
return null;
}
}
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.