CompletableFuture 双层循环嵌套

import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.concurrent.CompletableFuture;

public class Test2 {

    public static void main(String[] args) throws Exception {

//        ThreadPoolExecutor executor = new ThreadPoolExecutor(3, 6, 60L, TimeUnit.SECONDS, new ArrayBlockingQueue<>(10));

        CompletableFuture<?> future = CompletableFuture
                // 执行异步任务
                .supplyAsync(() -> {
                    int result = new Random().nextInt(100);
                    System.out.println("任务A:" + result);
                    return result;
                }).thenComposeAsync((current) -> {
                        
                        List<CompletableFuture<?>> f1s = new ArrayList<>();  //
                        
                        for(int i=1;i<4;i++) {
                            CompletableFuture<?> f1 = CompletableFuture.supplyAsync(()->{return "";}).thenComposeAsync((fb) -> {

                                System.out.println("f1执行结束");
                                
                                //
                                List<CompletableFuture<?>> f2s = new ArrayList<>();  //
                                for (int j = 1; j < 4; j++) {
                                    CompletableFuture<String> f2 = CompletableFuture.supplyAsync(() -> {
                                        System.out.println("f2执行结束");
                                        return  ".f2结果";
                                    });
                                    f2s.add(f2);
                                }
                                CompletableFuture<?> t = CompletableFuture.allOf(f2s.toArray(new CompletableFuture[f2s.size()]));
                                return t;
                                //
                                
                            });
                            f1s.add(f1);
                        }
                        CompletableFuture<?> tmp = CompletableFuture.allOf(f1s.toArray(new CompletableFuture[f1s.size()]));
                        return tmp;
                    
                });

        System.out.println(future.get());

        System.out.println("end");
        
//        executor.shutdown();
    }

}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值