0ffset
2021-09-07 20:08
采纳率: 0%
浏览 26
已结题

为什么方法二可以实现异步调用而方法一不可以?(方法二执行更快)

public static List<String> findPriceASync1(List<NetMall> list, String productName) {
        Stream<CompletableFuture<String>> stream = list.stream().map(netMall ->
                CompletableFuture.supplyAsync(() -> String.format(productName + " %s price is %.2f",
                        netMall.getNetMallName(), netMall.getPriceByName(productName))));
        return stream.map(CompletableFuture::join).collect(Collectors.toList());


    }
public static List<String> findPriceASync2(List<NetMall> list, String productName) {
        Stream<CompletableFuture<String>> stream = list.stream().map(netMall ->
                        CompletableFuture.supplyAsync(() -> String.format(productName + " %s price is %.2f",
                                netMall.getNetMallName(), netMall.getPriceByName(productName)))).
                collect(Collectors.toList()).stream();  //此处不同
        return stream.map(CompletableFuture::join).collect(Collectors.toList());
    }

  • 收藏

1条回答 默认 最新

  • 有问必答小助手 2021-09-09 10:39

    你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答


    本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。


    因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。

    打赏 评论

相关推荐 更多相似问题