JDK8-11-CompletableFuture(2)- CompletableFuture基本用法

本文介绍使用 Java 中的 CompletableFuture 进行异步处理的方法。通过对比同步与异步调用,展示如何利用 CompletableFuture 实现商品价格计算与其它任务的同时进行,显著减少总体执行时间。

CompletableFuture(2)- CompletableFuture基本用法

先看下如下例子:

Shop :店铺

getPrice :店铺中获取商品价格的方法

calculatePrice :店铺中具体计算价格的方法,sleep 1秒,模拟耗时

getPriceTest :同步调用测试方法,主线程首先调用 Shop getPrice 方法获取商品价格,然后再去做耗时 500 ms 的其他事情

public class Shop {

    private static final Random random = new Random();

    public double calculatePrice(String product) {
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return random.nextDouble() * product.charAt(0);
    }

    public double getPrice(String product) {
        System.out.println(Thread.currentThread() + " 开始计算商品价格...");
        return calculatePrice(product);
    }
    
    public static void getPriceTest(){
        long start = System.currentTimeMillis();
        System.out.println(new Shop().get
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值