优化执行多个查询并合并数据的速度

2021-08-08  本文已影响0人  flyjar

在执行多个查询,并且数据之前没有依赖,可以常用使用多线程,来进行查询合并。以下方案并不是最优方案。要看情况而定,如果查询比较多的话,可以使用forkjoin,futuretask。还有就是每次调用都要创建线程池和关闭线程池,这个地方也可以进行优化


    public ResultData test() throws InterruptedException {

        //1.先创建一个线程池
        ExecutorService executorService = Executors.newFixedThreadPool(2);

        //2.创建一个结果集,来保存结果
        ResultData resultData = new ResultData();

        //3.执行第一个查询
        executorService.submit(() -> {
            resultData.setOrgData(emergencyMaterialProcurementService.getOrgIdParentId("1"));
        });

        //4.执行另一个查询
        executorService.submit(() -> {

            resultData.setBizData(emergencyMaterialProcurementService.getBizObjectId("1"););

        });

        //5.关闭线程池
        executorService.shutdown();

        //6.设置最大等待时间
        executorService.awaitTermination(Long.MAX_VALUE, TimeUnit.MINUTES);

        return resultData;

    }
上一篇 下一篇

猜你喜欢

热点阅读