zoukankan      html  css  js  c++  java
  • 多线程并发查询mysql数据库中的数据

    用10个一次拉2吨的卡车代替1个一次拉10吨的卡车。前提是有资源折腾,比如线程池,多核cpu,也要考虑线程的切换代价。把java服务器和数据库服务器综合利用起来,传统的方式是java服务器发送一条指令给数据库就坐等喝茶拿结果,数据库累个半死才出结果,而且出力不讨好,嫌干活慢,现在也要让java服务器也要干点事,这样大家都心里比较平衡点。

    List<CompletableFuture<List<TimesAndAmount>>> allStationsTimesAmount =
    inputParamArrayList.stream()
    .map(inputParam -> CompletableFuture.supplyAsync(() ->nonOilSalesAndPerCustomerTransactionDao.getTimesHoursInterval(inputParam), executorService))
    .collect(Collectors.toList());

    List<List<TimesAndAmount>> timesAmount = allStationsTimesAmount.stream()
    .map(CompletableFuture::join)
    .collect(Collectors.toList());


    private List<String> getBarcodeList(String[] deptIds, String[] ids) {

    List<String> list = new ArrayList<>();
    List<String> list1 = new ArrayList<>();
    if (deptIds != null){
    list = Arrays.asList(deptIds);

    List<CompletableFuture<List<String>>> allBarcodes =
    list.stream()
    .map(inputParam -> CompletableFuture.supplyAsync(() ->nonOilSalesAndPerCustomerTransactionDao.getBarcodesBydeptid(inputParam), executorService))
    .collect(Collectors.toList());

    List<List<String>> listList = allBarcodes.stream()
    .map(CompletableFuture::join)
    .collect(Collectors.toList());

    //List<List<String>> 转换为List<String> ,使用flatMap

    list1 =
    listList.stream()
    .flatMap(inner -> inner.stream()).collect(Collectors.toList());


    }

    if (ids != null){
    list1.addAll(Arrays.asList(ids));
    }

    return list1;

    }
  • 相关阅读:
    图片切换的练习
    固定定位
    绝对定位
    相对定位
    全局作用域 变量声明
    3种循环语句 JS基础
    解除绑定事件 和 封装兼容性addEvent 来处理针对于不同浏览器的兼容方法
    插入排序法 猴子选大王 检索的数组 验证身份证号码 练习
    [z]JSONP例子
    ireport related
  • 原文地址:https://www.cnblogs.com/herosoft/p/9909099.html
Copyright © 2011-2022 走看看