跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 请教一个关于多线程的问题,我觉得这么写没有用。
未分類
8 2 月 2020

请教一个关于多线程的问题,我觉得这么写没有用。

请教一个关于多线程的问题,我觉得这么写没有用。

資深大佬 : 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)

  • 資深大佬 : Resource

    垃圾代码

  • 資深大佬 : zzstar

    这是啥,看不懂。

  • 資深大佬 : zzstar

    这难道是为了控制并发?

  • 資深大佬 : sqfphoenix

    本意是想做单例的线程池吧,结果单例的实现方式是错误的
    这么上线程池只会降低并发量

  • 主 資深大佬 : tghoul

    @zzstar 我也不明白为啥在 controller 里面弄线程,给我看傻了

  • 資深大佬 : shenjixiang

    有用的,分批处理数据。注意这个参数:inSerialNum

  • 資深大佬 : n770011

    依我的理解,代码应该就是依上所说控制并发。但实际应该没用。因为线程池是类的成员变量,除非 spring 容器设置成只有一个 AccessController 实例(我猜测是能设置的)。private ExecutorService pool = null;改成 private static ExecutorService pool = null;应该就能起到并发控制作用。

  • 資深大佬 : zzstar

    默认 Bean 是单例模式,这么写也可以控制并发吧。不过不知道为什么这么写

  • 資深大佬 : wysnylc

    单例初始化没解决并发,线程池任务是串行
    总结:并发个锤子

  • 主 資深大佬 : tghoul

    @n770011 同事说用线程池是提高处理效率

  • 資深大佬 : iffi

    LOL

  • 主 資深大佬 : tghoul

    @shenjixiang 这个只是生成一个流水号而已

  • 資深大佬 : xhinliang

    垃圾代码

  • 資深大佬 : zhady009

    线程池初始化 bean 默认是单例所以这个一般没什么问题 不过也不太优雅

    但是他把服务器的请求线程又汇聚在线程池的队列里 又在里面 get() 其实是更慢了

  • 資深大佬 : changePro

    垃圾代码!

  • 資深大佬 : ffw5b7

    萌新想问一下,为什么现在不用 WebFlux 类似的并发框架,而是加机器?

  • 資深大佬 : zwx327634

    @ffw5b7 几十上百甚至上千的服务,升级到异步框架,成本挺高的。调用方使用异步也挺好

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具