凡事都在事上磨,这样才能精进,成长进步提高! ------ 博客园首页

多任务派发线程处理示例supplyAsync

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package com.cytc.test;
 
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
 
public class T7 {
    public static void main(String[] args) {
        List<List<String>> groupedIdList = new ArrayList<>();
        List<String> temp1 = new ArrayList<>();
        temp1.add("123");
        List<String> temp2 = new ArrayList<>();
        temp2.add("456");
        groupedIdList.add(temp1);
        groupedIdList.add(temp2);
 
        List<CompletableFuture<List<String>>> futureList = groupedIdList.stream()
                .map(taskData -> CompletableFuture.supplyAsync(() -> queryTyGroupList(taskData),
                        new ThreadPoolExecutor(100, 500, 10L, TimeUnit.SECONDS, new LinkedBlockingQueue(500))))
                .collect(Collectors.toList());
        // 确保所有的任务完成
        List<List<String>> resultBeanList = futureList.stream().map(CompletableFuture::join).collect(Collectors.toList());
        System.out.println("******************* all tasks handle done**********************");
        resultBeanList.forEach(c->{
            System.out.println(c);
        });
    }
 
    private static List<String> queryTyGroupList(List<String> codeList) {
        codeList.forEach(code -> {
            code = code + " handle data";
            System.out.println(code);
            try {
                Thread.sleep(new Random().nextInt(1000));
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
        });
        codeList.add(" new data.. ");
        return codeList;
    }
}

  

posted @   追风fc  阅读(45)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2022-08-02 人生大事--- 选对伴侣
点击右上角即可分享
微信分享提示