zoukankan      html  css  js  c++  java
  • Future模式

    让run方法有结果??

    Future可以拿到异步执行任务的返回值。

    • allAsList:对多个ListenableFuture的合并,返回一个当所有Future成功时返回多个Future返回值组成的List对象。注:当其中一个Future失败或者取消的时候,将会进入失败或者取消。
    • successfulAsList:和allAsList相似,唯一差别是对于失败或取消的Future返回值用null代替。不会进入失败或者取消流程。
    • immediateFuture/immediateCancelledFuture: 立即返回一个待返回值的ListenableFuture。

    主要接口为ListenableFuture,并借助于Futures静态扩展。

    继承至Future的ListenableFuture,允许我们添加回调函数在线程运算完成时返回值或者方法执行完成立即返回。

    对ListenableFuture添加回调函数:

    Futures.addCallback(ListenableFuture<V>, FutureCallback<V>, Executor)

    http://blog.51cto.com/lavasoft/115112 51CTO


    提交到线程池(不知道什么时候执行但一定会执行)
    ListenableFuture<HotelDetailModel> task = executorService.submit(new HotelDetailTask(hotelDetailParam));

    添加回调的意思就是指定任务执行后要做的事情(执行成功怎么怎么样,执行失败怎么怎么样)
    // 添加回调, 将接口放回的LowestPriceBo 放入共享的list中
    Futures.addCallback(task, new FutureCallback<HotelDetailModel>() {
    @Override
    public void onSuccess(HotelDetailModel result) {
    if (result != null) {
    for (PriceInfoModel item : result.getPriceInfos()) {
    tempPriceList.add(item);
    }
    }
    }

    @Override
    public void onFailure(Throwable t) {

    }
    });
     
    新生的小心情
  • 相关阅读:
    Microsoft Excel 不能使用对象链接和嵌入的错误/cannot use object linking and enbedding
    (转)QML代码与现有Qt UI代码整合
    vs2012编译Qwt
    参数和返回类型也可以多态
    多态的运行
    调用哪个方法
    继承的意义
    设计继承树2
    设计继承树1
    了解继承
  • 原文地址:https://www.cnblogs.com/jianmianruxin/p/8276629.html
Copyright © 2011-2022 走看看