TEL:150-0382-3679
新闻资讯 News Center
建站知识 / 公司动态
java多线程使用CompletableFuture来并发地执行一系列任务
List<CompletableFuture<List<DigTask>>> futures = new ArrayList<CompletableFuture<List<DigTask>>>();
            List<String> citys = dictionaryService.listObjs(new QueryWrapper<Dictionary>()
                    .eq("delete_state", false)
                    .eq("type", 3).select("name"), p -> p.toString());
            for (String _city : citys) {             
                futures.add(CompletableFuture.supplyAsync(() -> {
                    return mapper.digTask();
                }, ThreadPoolUtils.getThreadPool()));
            }
            List<DigTask> rs = new ArrayList<DigTask>();
            CompletableFuture.allOf(futures.toArray(CompletableFuture[]::new)).whenComplete((v, t) -> {
                futures.forEach(p -> {
                    rs.addAll(p.getNow(null));
                });

            }).join();

mapper.digTask(); 返回List<DigTask>

解读:




一站式全网营销,您身边的网络营销顾问,为您一对一私人定制符合您实际需求的网络营销实施方案!
24小时咨询热线:
150-0382-3679