请教一个关于多线程的问题,我觉得这么写没有用。
資深大佬 : tghoul 19
新接手了一个项目,领导让熟悉一下,我看到同事以前写的代码,我看不懂线程为啥要这么用,我觉得这么做并不会提升性能吧,请各位大佬帮忙解答一下,谢谢。
@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; } } }
大佬有話說 (17)