Future模式

本文通过网购送货的类比,详细介绍了Future模式在并发编程中的应用,特别是如何在多线程环境下非阻塞地获取执行结果,提供了一个具体的代码示例。

  Future模式有点类似于网上购物,在你购买商品,订单生效之后,你可以去做自己的事情,等待商家通过快递给你送货上门。

  在并发编程中,我们经常用到非阻塞的模型,在多线程的三种实现中,不管是继承thread类还是实现runnable接口,都无法保证获取到执行结果。通过实现Callback接口,并用Future可以来接收多线程的执行结果。

代码模拟

public class Test {
    public static class Task implements Callable<String> {
        @Override
        public String call() throws Exception {
            System.out.println("等待送货");
            Thread.sleep(5000);
            System.out.println("快递送到");
            return "订单结束";
        }
    }

    public static void main(String[] args) throws InterruptedException, ExecutionException {

        System.out.println("网购下单成功");

        ExecutorService executor = Executors.newCachedThreadPool();
        Task task = new Task();
        Future<String>  result = executor.submit(task);

        System.out.println("开始大扫除");
        Thread.sleep(2000);
        System.out.println("大扫除结束");

        System.out.println(result.get());
    }
}

执行结果

 

转载于:https://www.cnblogs.com/JoeyWong/p/9871419.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值