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) {

    }
    });
     
    新生的小心情
  • 相关阅读:
    揭秘Amazon反应速度超快的下拉菜单
    CSS3滤镜
    雅虎团队经验:网站页面性能优化的34条黄金守则
    10条影响CSS渲染速度的写法与建议
    前端优秀网站
    视频媒体播放,最好的 HTML 解决方法
    zen-coding for notepad++,前端最佳手写代码编辑器
    ASP.NET中IsPostBack详解
    w3c教程
    怎样才能成为优秀的前端开发工程师
  • 原文地址:https://www.cnblogs.com/jianmianruxin/p/8276629.html
Copyright © 2011-2022 走看看